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


多數情況下,能夠直接使用OpenCV自帶的庫文件,可是假設是為了方便調試:

1. 方便調試opencv源代碼

2. 為了與某些庫兼容

還是須要又一次編譯opencv的源代碼。

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


CMake編譯OpenCV

OpenCV的下載與安裝

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

解壓完畢后就是須要的文件了。注意對應的文件夾不能包括中文。

編譯OpenCV

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

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

 

1、如圖所看到的。設置OpenCV的安裝文件路徑和想要生成的文件路徑。

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

3、點擊完畢就會進行配置,配置后的界面例如以下圖所看到的,選擇須要增加的文件。我這里勾上BUILD_EXAMPLES其它選項默認。

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

SNAGHTMLa64bc2

 

使用VS2010編譯版本號庫

以上操作完畢后,就能夠在生成的文件夾下找到相應的project文件,依據上圖配置我的文件路徑為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中確保至少有一個project被打開的情況下,點擊“視圖”->“其它窗體”->“屬性管理器”,然后從左側隨意項目中打開“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的安裝與配置。





免責聲明!

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



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