关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error

http://blog.sina.com.cn/s/blog_9015f3230101bbef.html

关于在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补丁()并安装。

并不是每小我都能很荣幸地安装上该补丁,因为我在安装的时辰碰到了下列题目:此策画机上没有安装本软件更新支撑的产品,单击“作废”退出安装法度。如下图所示:

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++---预编译头里面的下拉菜单选项改为:不使用预编译头,就好了。

时间: 2024-10-13 00:42:25

关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error的相关文章

解决Visual Studio 2010新建工程时出现『1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt』错误

VS2010在经历一些更新后,建立Win32 Console Project时会出"error LNK1123" 错误. 解决方案为: 第一步:将:项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单的选项"是"改为"否"即可,但是每新建一个项目都要这样设置一次. 第二步:将:项目|项目属性|配置属性|连接器|清单文件|嵌入清单选项"是"改为"否". 第三步:一般计算机经过上两步设置就能解决问题了,但是

让Visual Studio 2008 和 2010支持Web Services Enhancements (WSE) 3.0

为什么我VS2010,C#添加服务引用没有?为什么不能添加服务引用? /* from:http://digantakumar.com/2010/06/04/wse-3-in-visual-studio-2008-and-2010/ */ 不翻居然图都看不到,真是个杯具,干脆拿过来吧 VS2008和2010默认是不支持Web Services Enhancements (WSE) 3.0,因为MS希望用WCF来代替.下面是关于让Visual Studio 2008 和 2010支持Web Serv

Visual studio 2008 的语法高亮插件 NShader

前段时间一直在使用matlab,今天需要使用vs2008,而用惯了matlab,习惯了其中一项选中变量高亮的设置,突然回来使用VS,感到各种不适应,顿时想到了一个词:矫情 呵呵,于是在网上找各种插件,希望在VS中也能实现这样的功能. 发现了一个叫做wordlight的工具,据说可以实现与matlab一样的将被选变量高亮,于是下载下来一试 1.下载地址: WordLight for 2008 下载网址:http://visualstudiogallery.msdn.microsoft.com/ad

【C++】利用Visual Studio 2008编写C++,Visual Studio 2008的基本使用

现在很多高校还是利用Visual C++ 6.0这一经典版本在教C++,很多人对自己第一个程序的回忆是利用Visual C++ 6.0用C语言写的Helloworld,之后再学习C++的类,不过还是在使用Visual C++ 6.0.于是Visual Studio对Visual C++ 6.0界面的布置改动得比较大,有大部分人如果要写C/C++还是会使用Visual C++ 6.0,甚至苦苦寻找win8下运行Visual C++ 6.0的方法,之后再弄个虚拟机之类的.一直对新式的C语言编写工具讳

Visual Studio 2008 Package Load Failure:未能正确加载包“Microsoft.VisualStudio.Xaml”

在安装好Visual Studio 2008后,启动Visual Studio 2008 发现如下提示: 包加载失败 未能正确加载包“Microsoft.VisualStudio.Xaml”( GUID = {E58C2A8B-BCC4-4559-AD59-D62EB6D58A22} ).请与包供应商联系以获得帮助.由于可能会发生环境损坏,建议重新启动应用程序.要禁止将来加载此包吗? 可以使用“devenv /resetskippkgs”重新启用包加载. 按照提示,在visual studio

文件中的类都不能进行设计,因此未能为该文件显示设计器 VS2008(Visual Studio 2008) x64

项目属性 运行平台x64 Form2 继承 Form1 , Form2 设计器 报错 64位dll  无法加载 DLL 找不到指定的模块 原因Vs2008(Visual Studio 2008)默认 没安装64编译器 安装参照:<http://blog.csdn.net/clever101/article/details/8844314> 安装sp1补丁会报这个, 安装目录:D:\Program Files (x86)\Microsoft Visual Studio 9.0\Microsoft

SQL SERVER 2005快捷键+visual studio 2008 快捷键

一.SQL SERVER 2005快捷键  快捷键                                       功能           CTRL       +       SHIFT       +       B生成解决方案           CTRL       +       F7           生成编译           CTRL       +       O                                   打开文件          

SSMS2008插件开发(2)--Microsoft Visual Studio 2008插件开发介绍

原文:SSMS2008插件开发(2)--Microsoft Visual Studio 2008插件开发介绍 由于开发SSMS2008插件是通过VS2008进行的,有必要先介绍一下VS2008的插件开发过程. 这次的目的是在VS2008的工具菜单中增加一个菜单项"Test Menu",该菜单项实现显示"Hello World"的功能. 1.打开"新建项目"对话框.在"项目类型"中选择"其他项目类型"--&g

Visual Studio 2008 下安装boost的详细步骤

请大家根据如下步骤一步一步进行操作: (一)boost的安装和编译 1:下载boost版本,目前最新的版本为1-47-0 下载地址为http://sourceforge.net/projects/boost/files/boost/1.47.0/ 2:进行解压缩,解压到C:\ 下面,在C盘下面,你会看到如下图 3:单击"开始"按钮,指向"所有程序",指向"Microsoft Visual Studio 2008",指向 "Visual