VS下配置OpenCV2.4.7常見問題


1.對於環境配置:

下載安裝到一個你喜歡的環境(不一定非是C盤下)-------安裝好后配置環境:【計算機】->【(右鍵)屬性】->【高級系統設置】->【高級(標簽)】->【環境變量】->“雙擊”系統變量中的PATH->在變量值里面添加相應的路徑。

對於32位系統,就添加:

”;…… opencv\build\x86\vc10\bin”(和之前的就有有的環境變量用英文的分號“;”進行分隔)

 

而對於64位系統,可以兩個都添加上:

”;…… opencv\build\x86\vc10\bin”

和”…… opencv\build\x64\vc10\bin”,

要添加那一個主要看你用的是編譯器是32win還是64win

我這里是64位系統但是使用的編譯器是32win所以就加一個32位的路徑,但其實兩個都加上方便編譯器的切換,當切換編譯器時可以直接使用而不用在進行配置。

2.新建一個項目:

可以直接建一個 Win32控制台應用程序(也可以文件-->新建-->項目-->Visual C++-->Win32控制台應用程序)新建一個項目。

直接下一步就好,根據需要選取“空項目”即可。

新建一個cpp源程序:接着在解決方案資源管理器的【源文件】處右擊->添加->新建項,在工程中新建一個cpp源文件。

3.對新建項目進行環境配置:

首先找到屬性管理器:

也可以通過視圖-->屬性管理器

在新出現的“屬性管理器”工作區中,點擊項目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(右鍵屬性,或者雙擊)即可打開屬性頁面。

將你安裝的opencv以下三個目錄引進:

······\opencv\build\include

······\opencv\build\include\opencv

······\opencv\build\include\opencv2 

在庫目錄中引入opencv的lib庫函數:

······\opencv\build\x86\vc10\lib(x86這個是編譯器win32還是64,與操作系統無關。vc10是指VS2010我用的就是這個版本)

 

配置鏈接庫:“屬性管理器”工作區中,鼠標右鍵項目-->屬性--》調節配置選項Debug|Release-->【通用屬性】 ->【鏈接器】->【輸入】->【附加的依賴項】

Debug下添加以下庫:

opencv_calib3d247d.lib
opencv_contrib247d.lib
opencv_core247d.lib
opencv_features2d247d.lib
opencv_flann247d.lib
opencv_gpu247d.lib
opencv_highgui247d.lib
opencv_imgproc247d.lib
opencv_legacy247d.lib
opencv_ml247d.lib
opencv_nonfree247d.lib
opencv_objdetect247d.lib
opencv_ocl247d.lib
opencv_photo247d.lib
opencv_stitching247d.lib
opencv_superres247d.lib
opencv_ts247d.lib
opencv_video247d.lib
opencv_videostab247d.lib

 Release下添加一下庫(直接復制就可以)

opencv_calib3d247.lib
opencv_contrib247.lib
opencv_core247.lib
opencv_features2d247.lib
opencv_flann247.lib
opencv_gpu247.lib
opencv_highgui247.lib
opencv_imgproc247.lib
opencv_legacy247.lib
opencv_ml247.lib
opencv_nonfree247.lib
opencv_objdetect247.lib
opencv_ocl247.lib
opencv_photo247.lib
opencv_stitching247.lib
opencv_superres247.lib
opencv_ts247.lib
opencv_video247.lib
opencv_videostab247.lib

開心的覺得可以用了結果出現了這樣的錯誤

不知道哪里錯了,查了一下:

1.我解決是項目屬性那里狀態不是Debug狀態而是活動(Debug),調到debug就可以正常運行了。

2. 網上解釋:

這算是opencv的一個bug,工程屬性里面關於帶d和不帶d的lib文件的附加依賴項的問題,就算配置好了每次想debug和release下都運行還得手動在工程屬性里面加。當得到這樣的錯誤時,可以把調試方式改一改,debug和release互換:

或者打開當前工程(注意是當前工程的屬性頁,不是通用屬性頁)的屬性頁,debug或者release哪個報錯,就把對應的帶d或不帶d的lib添加到【“當前”工程屬性】->【鏈接器】->【輸入】->【附加的依賴項】下即可。

 

 

剛開始用遇到的錯誤就這一個,先把網上的收藏一下:相關網址:http://blog.csdn.net/poem_qianmo/article/details/19809337/

1. 找不到core.h

出現這個問題是因為include的時候粗心大意了。

如果你的版本是2.4.6。在這個版本下,opencv根文件夾下面就有個include,但我們配置的時候如果包含的是他就坑爹了。

正確的應該填build里面的那個include。

 2.無法解析的外部命令

這個問題其實上面有過解釋了,不管你是32位還是64位操作系統,只用管你用win32編譯器還是X64 編譯器。

其實配置選擇什么跟64位還是32位系統沒有直接的關系,而是在於你在編譯你的程序的時候是使用那個編譯器。

編譯器是win32,就用x86

編譯器是X64,就用X64。不過一般情況下,都是用的win32的X86編譯器。所以,

無論32還是 64位操作系統,配置文件最好都選擇x86版的。

3.關於形如--error LNK2005:xxx 已經在 msvcrtd.lib ( MSVCR90D.dll ) 中定義

出現這個問題,把靜態庫不包含就行了。

 4. 應用程序無法正常啟動0xc000007b

Lib包含的問題。也許你同時包含了X86和X64的,或者包含出錯錯了。或者是對於windows 8 64位,dll要放在和System32文件夾同級的SysWOW64文件夾中。

5.無法打開文件“opencv_ml249d.lib”系列的錯誤

關於LINK : fatal error LNK1104: 無法打開文件“opencv_ml249d.lib”,解決方法是:項目->屬性管理器->Debug|Win32->Microsoft.Cpp.Win32.userDirectories中的屬性頁面->連接器->常規里面的附加庫目錄中加入相應的lib文件目錄。
 
這個錯誤主要是因為包含的庫目錄中,和包含的附加依賴項不能相互對應照成的。
也許是“opencv_ml249d.lib“多加了一個空格,成了”opencv_ml249d. lib“,就會報錯。
遇到這個問題,檢查三個方面:
 
1.檢查第四步”4.工程庫(lib)目錄的配置“庫目錄中的路徑是否准確。
2.檢查第五步”5.鏈接庫的配置“中“附加依賴項”的格式有沒有問題,有沒有多空格,版本號248,249什么的有沒有問題,有沒有多一個空格,少一個點什么的。
3.第二步環境變量的配置是否准確。
 
 
以上錯誤僅為收藏!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM