爲何要使用CMake+VS編譯OpenCV的源代碼

多數狀況下,可以直接使用OpenCV自帶的庫文件,但是假設是爲了方便調試:linux

1. 方便調試opencv源代碼windows

2. 爲了與某些庫兼容函數

仍是需要又一次編譯opencv的源代碼。工具

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


CMake編譯OpenCVui

OpenCV的下載與安裝

下載Windows下的安裝文件OpenCV-2.4.3.exe,雙擊解壓。選擇需要的安裝文件夾就能夠。個人存放路徑爲D:\opencv。spa

解壓完畢後就是需要的文件了。注意對應的文件夾不能包括中文。調試

編譯OpenCV

這一步不是必須的,假設不編譯,可以使用編譯好的庫,但是不能進行源碼的跟蹤調試(未驗證),所以這裏仍是編譯一下。orm

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

 

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

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

三、點擊完畢就會進行配置,配置後的界面例如如下圖所看到的,選擇需要增長的文件。我這裏勾上BUILD_EXAMPLES其它選項默認。

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

SNAGHTMLa64bc2

 

使用VS2010編譯版本號庫

以上操做完畢後,就可以在生成的文件夾下找到相應的project文件,依據上圖配置個人文件路徑爲D:\OpenCV24\OpenCV.sln,使用VS2010打開,進行例如如下操做。

一、在Debug下,選擇解決方式(解決方式資源管理器)裏的 解決方式「OpenCV」。點右鍵,執行"又一次生成解決方式"。

image

二、生成成功後。在選擇INSTALL項目,右鍵執行生成;

三、在Release下進行1-2步的操做。

四、以上操做完畢後,針對當前的系統的OpenCV庫就生成了。

VS的相關配置

也即告訴VC去什麼地方尋找OpenCV的頭文件和庫。打開VC。選擇菜單「工具」->「選項」->「項目和解決方式」->「VC++文件夾」->「包括文件」。在VS2010中此選項打開例如如下圖所看到的,顯示編輯功能被否決。

SNAGHTMLcbd33a

能夠在詳細的項目中右鍵->屬性來設置,僅僅是這種設置沒法被繼承。每一個項目都需要單獨設置,所以需要叢一個能夠被繼承的全局設置,方法例如如下:

一、在VS中確保至少有一個project被打開的狀況下,點擊「視圖」->「其它窗體」->「屬性管理器」,而後從左側隨意項目中打開「Debug| Win32」->「Microsoft.Cpp.Win32.user」,例如如下圖所看到的。

image

二、在彈出例如如下圖所看到的的窗體中,加入文件包括與庫的路徑。點擊左側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的安裝與配置。

相關文章
相關標籤/搜索