為什么要使用CMake+VS編譯OpenCV的源碼


多數情況下,可以直接使用OpenCV自帶的庫文件,但是如果是為了方便調試:

1. 方便調試opencv源碼

2. 為了與某些庫兼容

還是需要重新編譯opencv的源碼。

OpenCV1.0版本有windowslinux之分,在 \OpenCV\_make文件夾下面已經存在了一個opencv.dsw的工程文件,直接用VC6,或者,Visual Studio就可以打開該工程,從而可以進行相應的編譯工作;而對於OpenCV2.0及以后的版本而言,就沒有類似的工程文件了。這個時候,就需要你自己利用CMake工具來生成一個Visual Studio的工程文件了。


CMake編譯OpenCV

OpenCV的下載與安裝

下載Windows下的安裝文件OpenCV-2.4.3.exe,雙擊解壓,選擇需要的安裝目錄即可。我的存放路徑為D:\opencv。

解壓完成后就是需要的文件了。注意相應的目錄不能包含中文。

編譯OpenCV

這一步不是必須的,如果不編譯,可以使用編譯好的庫,但是不能進行源代碼的跟蹤調試(未驗證),因此這里還是編譯一下。

編譯用的工具Cmake,這是一個跨平台的安裝編譯工具,主要用於把OpenCV的源碼生成對應的VS工程。操作如下。

 

1、如圖所示,設置OpenCV的安裝文件路徑和想要生成的文件路徑;

2、點擊左下方configure,在彈出的選項中選擇Visual Studio 10(對應2010版本);

3、點擊完成就會進行配置,配置后的界面如下圖所示,選擇需要加入的文件,我這里勾上BUILD_EXAMPLES其他選項默認;

4、修改完成后再次點擊configure進行配置,完成后點擊Generate,至此完成配置。

SNAGHTMLa64bc2

 

使用VS2010編譯版本庫

以上操作完成后,就可以在生成的目錄下找到對應的工程文件,根據上圖配置我的文件路徑為D:\OpenCV24\OpenCV.sln,使用VS2010打開,進行如下操作。

1、在Debug下,選擇解決方案(解決方案資源管理器)里的 解決方案“OpenCV”,點右鍵,運行"重新生成解決方案";

image

2、生成成功后,在選擇INSTALL項目,右鍵運行生成;

3、在Release下進行1-2步的操作;

4、以上操作完成后,針對當前的系統的OpenCV庫就生成了。

VS的相關配置

也即告訴VC去什么地方尋找OpenCV的頭文件和庫,打開VC,選擇菜單“工具”->“選項”->“項目和解決方案”->“VC++目錄”->“包含文件”,在VS2010中此選項打開如下圖所示,顯示編輯功能被否決。

SNAGHTMLcbd33a

可以在具體的項目中右鍵->屬性來設置,只是這樣的設置無法被繼承,每一個項目都需要單獨設置,因此需要叢一個能夠被繼承的全局設置,方法如下:

1、在VS中確保至少有一個工程被打開的情況下,點擊“視圖”->“其他窗口”->“屬性管理器”,然后從左側任意項目中打開“Debug| Win32”->“Microsoft.Cpp.Win32.user”,如下圖所示。

image

2、在彈出如下圖所示的窗口中,添加文件包含與庫的路徑。點擊左側VC++目錄,編輯右側的包含目錄與庫目錄,分別添加對應的路徑。

SNAGHTMLd1d2dc

對應的路徑如下:

包含目錄

使用提供的庫需要添加(對應我自己的安裝目錄,路徑根據個人安裝修改)

D:\opencv\build\include

D:\opencv\build\include\opencv

D:\opencv\build\include\opencv2

如果使用的是上文編譯的庫的路徑,則添加(對應我自己的目錄,路徑根據個人安裝修改)

D:\OpenCV24\install\include

D:\OpenCV24\install\include\opencv

D:\OpenCV24\install\include\opencv2

SNAGHTMLd945ca

64為系統對應更改。

庫目錄

在OpenCV的安裝文件中已經為VC2008和2010預先編譯好了動態庫與靜態庫,因此可以不需要編譯直接添加。

針對VS2010添加(對應我自己的目錄,路徑根據個人安裝修改)

D:\opencv\build\x86\vc10\lib

添加上文編譯的庫則添加(對應我自己的目錄,路徑根據個人安裝修改)

D:\OpenCV24\install\lib

注:有的資料中說法如下:

(注:由於自己編譯成功,lib文件在Debug和Release兩個文件中,加載庫時需到Debug和Release中, 我配置的庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否則調試時無法進入Open CV代碼中。 by:Jackyzzy 趙振陽)

但是我的目錄下並沒有對應的文件夾,反而在D:\OpenCV24\lib目錄下有對應的Debug文件夾,文件經過對比也一致,因此這個地方究竟添加什么地方的目前還沒有驗證,已經驗證的同學歡迎告知我。

到這里,配置完畢,任意打開一個項目通過屬性來查看,可以看到以上配置已經被繼承。

設置環境變量

剛才設置的是動態庫,因此還需要將OpenCV的dll文件所在的目錄加入Path環境變量。dll文件目錄如下:

自己編譯的庫

D:\OpenCV24\install\bin

使用提供的庫(VS2010)

D:\opencv\build\x86\vc10\bin

有的資料中說由於有些函數需要使用TBB,因此需要把TBB相關也添加環境變量,但是我並沒有在opencv\build\common\tbb這個路徑中找到TBB文件件,在2.4.3版本中經過查找此文件夾存在與opencv\build\common\tbb 路徑下,因此這部分同樣未驗證。

至此,就完成了OpenCV的安裝與配置。





注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com