關於在Visual Studio 2008/2010 和Opencv平台下出現LINK : fatal error

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   使用   sp   for   

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++---先行編譯頭裡面的下拉式功能表選項改為:不使用先行編譯頭,就好了。

 

關於在Visual Studio 2008/2010 和Opencv平台下出現LINK : fatal error

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.