转:http://blog.csdn.net/poem_qianmo/article/details/19809337
其中:跳过了“2.配置环境变量”,其它大致一样。
最后出现几个错误,分别是:
第一个错误:fatal error LNK1104:
无法打开文件“.obj”;LINK : fatal error
LNK1104: 无法打开文件“xx.lib”
解决方案:http://blog.sina.com.cn/s/blog_9015f3230101bbef.html
(主要是检查“添加依赖项”(注意2010不用分号分割,直接用回车键分割即可!
同时配置了环境变量,即上面跳过去的步骤。这里需要指出,最好把变量配置到系统级的path中)
关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error
LNK1000/1104等错误解决办法
LINK :
fatal error LNK1104: 无法打开文件“.obj”
由于自己常用Visual Studio 2008/2010 和Opencv平台编程,像 LINK :
fatal error LNK1104: 无法打开文件“.obj”;LINK :
fatal error LNK1104: 无法打开文件“xx.lib”;LINK
: fatal error LNK1000: Internal error during
Inc...等这样的错误经常遇到。根据自己的经验总结起来如下:
首先,对于这些错误一般都是由于一些新手对于Visual Studio 2008/2010
和Opencv平台的开发环境不熟悉,在配置环境变量、包含文件、库文件、添加依赖项等没有配置正确导致的。
一、对于遇到LINK : fatal error LNK1104:
无法打开文件“.obj”;LINK : fatal error
LNK1104: 无法打开文件“xx.lib”这两类错误,你需要检查你的环境变量、包含文件、库文件、添加依赖项等,看是否配置对了。特别是“添加依赖项”,最容易出错,因为VS2008和VS2010的配置有区别。VS2008中xx.lib之间用空格键;而VS2010用逗号隔开;比如我用的最新的Opencv2.40版本的,在VS2008配置:
输入附加依赖项:Debug项:opencv_calib3d240d.lib
opencv_contrib240d.lib opencv_core240d.lib opencv_features2d240d.lib
opencv_flann240d.lib opencv_gpu240d.lib opencv_highgui240d.lib
opencv_imgproc240d.lib opencv_legacy240d.lib opencv_ml240d.lib
opencv_objdetect240d.lib opencv_ts240d.lib opencv_video240d.lib
Release项:opencv_calib3d240.lib
opencv_contrib240.lib opencv_core240.libopencv_features2d240.lib
opencv_flann240.lib opencv_gpu240.lib opencv_highgui240.lib
opencv_imgproc240.lib opencv_legacy240.lib opencv_ml240.lib
opencv_objdetect240.lib opencv_ts240.lib opencv_video240.lib
%(AdditionalDependencies)
在VS2010下配置:
输入附加依赖项:Debug项:opencv_calib3d240d.lib;opencv_contrib240d.lib;opencv_core240d.lib;opencv_features2d240d.lib;opencv_flann240d.lib;opencv_gpu240d.lib;opencv_highgui240d.lib;opencv_imgproc240d.lib;opencv_legacy240d.lib;opencv_ml240d.lib;opencv_objdetect240d.lib;opencv_ts240d.lib;opencv_video240d.lib
Release项:opencv_calib3d240.lib;opencv_contrib240.lib;opencv_core240.lib;opencv_features2d240.lib;opencv_flann240.lib;opencv_gpu240.lib;opencv_highgui240.lib;opencv_imgproc240.lib;opencv_legacy240.lib;opencv_ml240.lib;opencv_objdetect240.lib;opencv_ts240.lib;opencv_video240.lib;%(AdditionalDependencies)
除此之外,我还要强调的是,无论你用的是WINDOWS
XP还是WIN7系统,是32位的还是64位,库文件的配置都是:C:\opencv\build\x86\vc10\lib(vs2010的)或者是C:\opencv\build\x86\vc9\lib(2008)。而不是C:\opencv\build\x64\vc10\lib或者C:\opencv\build\x64\vc9\lib;
对于这个问题,我亲自尝试过很多次,必须是这样,没有为什么。当然必须有个前提就是你的Opencv文件夹必须放在C盘,并且按照这个路径C:\opencv\build\x86\vc10\lib(vs2010的)刚好能找到你的Lib库文件。若是D盘,就把路径改为D盘。所以在配置路径时一定要一步步打开文件夹,并检查核实路径,这地方最容易出错。比如你的opencv文件放在了C:\programfile\opencv\build...或者是C:\opencv2.3.1\build....等,或者你的opencv文件夹命名时有大写之母,如:C:\OPencv\build.....,编译时就会因为找不到lib文件而出错。对于下面环境变量、包含目录等的有关路径设置,都是这个道理。
同理对于环境变量的设置也都是:PATH值:
C:\opencv\build\x86\vc10\bin;C:\opencv\build\common\tbb\ia32\vc10。或者是PATH值:
C:\opencv\build\x86\vc9\bin;C:\opencv\build\common\tbb\ia32\vc9。无论你用的是WINDOWS
XP还是WIN7系统,是32位的还是64位,都是这样。千万不能因为你的是WIN7 64位的系统,而改成了C:\opencv\build\x64\vc9\bin;C:\opencv\build\common\tbb\intel64\vc9,这样会导致编译无法连接。
对于环境变量,我还要强调的是:在你每次更改完PATH值后,一定要记得重启电脑,重启了以后,更改的值才有效。
包含目录:C:\opencv\build\include\opencv;C:\opencv\build\include\opencv2;C:\opencv\build\include;$(IncludePath)
二、对于LINK : fatal error LNK1000: Internal error during
IncrBuildImage错误:
当在win7下安装Visual stdio 2008 sp1时会遇到。写法度是碰到LINK : fatal error LNK1000:
Internal error during IncrBuildImage错误,搜了一下发明是vs的bug,须要打补丁。
解决办法
1、去微软网站下载KB948127补丁()并安装。
并不是每小我都能很荣幸地安装上该补丁,因为我在安装的时辰碰到了下列题目:此策画机上没有安装本软件更新支撑的产品,单击“作废”退出安装法度。如下图所示:
Studio 2008/2010 和Opencv平台下出现LINK : fatal error"
name="image_operate_32701348802846671" alt="关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error"
src="http://pic-server2.byywee.com/M0/S588/588075-0.jpg">
2、和我一样不幸安装失败的还可以选择如下手工来改工程设置。
选择项目(Project)->属性(Property)->链接器(Linker)->常规(General)下面的“启用增量链接(Enable
Incremental
Linking)”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。不过这又引入了别的一个警告:FormatCom.obj :
warning LNK4075: 忽视“/EDITANDCONTINUE”(因为“/INCREMENTAL:NO”规范)。
选择项目,属性(Property pages)->设备属性(Configuration Properties)
->C/C++,批改“调试信息格局(Debug Information Format)”为“法度数据库(Program
Database(/Zi))”即可。
3、若是你命运不好又安装失败,并且又感觉更改工程设置不成靠,可以去下载sp1补丁包安装。
我安装了sp1补丁包后今朝没有再呈现error LNK1000的错误。
三、若是遇到无法预编译头文件的错误,这个比较好办,你只需要把项目---属性----配置属性---C/C++---预编译头里面的下拉菜单选项改为:不使用预编译头,就好了。Studio 2008/2010 和Opencv平台下出现LINK : fatal error"
name="image_operate_76021348804784265" alt="关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error"
src="http://s2.sinaimg.cn/middle/9015f3234cabb1249bbb1&690">
第二个错误:LINK : fatal
error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方案:http://icbm.iteye.com/blog/1956784
(主要是将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单
“是”改为“否”。 )
VS 2010下 打开实例
出现这样的错误:
LINK : fatal error LNK1123: 转换到 COFF 期间失败:
文件无效或损坏
终极解决方案:
VS2010在经历一些更新后,建立Win32
Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单
“是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32
Project项目时,按照上面解决方案依然发生了“error
LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将
项目|项目属性|配置属性|连接器|清单文件|嵌入清单
“是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program
Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe,
另一个是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息
查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
原文链接:
LINK : fatal error
LNK1123: 转换到 COFF 期间失败: 文件无效或损坏