win10搭建Visual Studio2013+OpenCV2.4.11+CMake3.9.2環境
阿新 • • 發佈:2019-01-24
通常情況下,我們需要使用opencv的庫函式時,只需將opencv的環境變數配置好就可以了,本人也在前面的文章中進行過介紹,部落格連結為http://blog.csdn.net/a2112233445566/article/details/38540389。但是如果我們想要檢視OpenCV原始碼、除錯OpenCV中相關函式甚至自己將其中的一些功能拿出來單獨編譯成庫檔案供我們自己使用的話,就需要自己編譯OpenCV的原始碼而不是直接使用OpenCV已經幫我們編譯好的庫檔案。好了,下面將介紹如何自己編譯OpenCV原始碼。
一.工具準備
1.本人所使用作業系統為win7 64位(當然也可以是32位的); 2.本人使用Visual Studio2010,大家可以去網上down,down下來後完全安裝就可以了; 4.本人的所使用的OpenCV版本為OpenCV2.4.4,也可以直接到網上down下來,然後解壓到某目錄下面就好了,我的OpenCV的安裝目錄是D:\program files\opencv244,編譯原始碼的目錄是D:\program files\opencv244_build; ps:看過好多前人的部落格,多說要用TBB,我不知道它是幹嘛的,所以就沒有用,在這裡就不做介紹。二.使用cmake生成opencv原始碼工程的解決方案
2.點選configure如下:
這裡需要選擇合適的編譯器,由於我用的是64位的系統,所以我選擇如上的編譯器。當然如果我們配置OpenCV時只需要使用到32位的,也可以選在Viusal Studio 10,完成選擇後點擊Finish。 3.經過上一步後,過大概半分鐘的時間就可以出現如下介面,當然不同的機器配置可能時間也不一樣,因為我用的是4G的記憶體,所以速度上面可能快點。下面我們可以就可以選擇需要編譯的模組,將需要編譯的模組打上“√”就行了。 ps:剛開始編譯時一直出現LINK : fatal error LNK1104: 無法開啟檔案“..\..\lib\Debug\opencv_core244d.lib”,編譯了一天將要崩潰了也找不到原因,然後我就單獨編譯了opencv_core模組,發現報錯。報錯的結果我沒有具體記下來,大概是說gpu編譯出問題了。可是我以前安裝cuda5.5時也是全都編譯的,最多也就是涉及到cuda的幾個模組生成不成功,而其餘模組還是能夠成功的。後來我想著我裝的是CUDA6.0,所以config時在選擇如上需要編譯的模組時,把含有cuda與gpu的模組的“√”去掉,結果編譯很順利。 4.經過上面的配置繼續點選Configure,將出現如下介面:
此時,需要編譯的模組的紅色都沒有了。 5.繼續點選Generate,生成原始碼工程的解決方案,如下:
見到如上介面,就說明用cmake生成原始碼的解決方案就大功告成了。
三.使用VS編譯原始碼:
1.開啟D:\program files\opencv244_build目錄,用Visual Studio開啟OpenCV.sln檔案如下:我們只需要在ALL_BUILD中右擊—>生成,即可編譯原始碼的Debug部分,然後再編譯出Release版本就可以了。 2.在CMakeTargets中的Install右擊->生成,生成最終需要的install資料夾。
四.相關配置:
1.開啟D:\program files\opencv244_build目錄,可以看到新生成了bin、include、install、lib等目錄。將install資料夾copy至原opencv目錄D:\program files\opencv244下,並且改名為buildByRami(名字隨便起)。 2.環境變數配置: 在系統的path下新增D:\program files\opencv244\buildByRami\bin; 在vs中配置相關環境變數 配置屬性->VC++目錄->可執行檔案目錄:新增D:\program files\opencv244\buildByRami\bin; 配置屬性->VC++目錄->包含目錄:新增D:\program files\opencv244\buildByRami\include;D:\program files\opencv244\buildByRami\include\opencv;D:\program files\opencv244\buildByRami\include\opencv2;配置屬性->VC++目錄->庫目錄:新增D:\program files\opencv244\buildByRami\lib; 連結器->輸入->附加依賴項: opencv_calib3d244d.lib
opencv_contrib244d.lib
opencv_core244d.lib
opencv_features2d244d.lib
opencv_flann244d.lib
opencv_highgui244d.lib
opencv_imgproc244d.lib
opencv_legacy244d.lib
opencv_ml244d.lib
opencv_objdetect244d.lib
opencv_ts244d.lib
opencv_video244d.lib 到此就完成了配置,本來準備將配置環境變數的圖片上傳的,可是不知道csdn怎麼上傳不了,所以就以文字方式上傳吧,如果有不清楚的,可以參考我部落格中關於配置環境變數的文章。