mingw 編譯opencv
使用MinGW編譯OpenCV庫
系統環境與資源
MinGW編譯器目錄:TDM-GCC版,位於D:\complicer\MinGW
OpenCV原始碼目錄:D:\mysoftware\opensource\opencv
OpenCV安裝目錄:D:\mysdk\opencv24
CMake安裝目錄:D:\tools\cmake
參考網址
TDM-GCC安裝參考教程:http://hi.baidu.com/jh_shot/blog/item/fecae10c5f1fe98a0b7b826d.html
http://code.opencv.org/svn/opencv/branches/2.4
準備工作
安裝TDM-GCC編譯器,安裝方法可以Google搜尋,主要是把編譯器的bin資料夾新增到系統的path中。下載OpenCV原始碼(最好使用釋出版的原始碼,SVN版可能會出現莫名其妙的問題)和CMake,並放到相應的目錄中準備好編譯環境,所有路徑最好全英沒空格。個人的系統環境如上,可以用作參考。
配置生成Makefile
執行CMake,即CMake安裝目錄中bin資料夾下的cmake-gui.exe檔案。選好OpenCV的原始碼目錄和安裝目錄。
點選Configure出現下面的選項Makefile型別的對話方塊。在這裡,使用預設的MinGW Makefiles和Use default native complicers。
點選Finish後,Cmake會進行配置,需要一點點的時間。完成後,出現下面的介面,紅色部分是配置的引數,最下面的是資訊輸出。從下面的輸出資訊中,可以看到編譯好後,安裝的目錄是D:\mysdk\opencv24\install。紅色的配置引數部分,可以依自己的需要進行配置。
我在其預設的基礎上,進行了一些更改。
1、去掉了BUILD_WITH_DEBUG_INFO的勾,不生成除錯資訊,開發中一般不會除錯到OpenCV的內部。
2、CMAKE_BUILD_TYPE的值設為Debug,本來應該使用Release。
3、把ENABLE_SSE2去掉,不啟用SSE2指令加速。
這裡的第2、3條是針對這個編譯器修改的,如果沒有做出這些更改,在使用OpenCV的highgui模組時,會引起程式崩潰,據stackoverflow上面的討論,是由於MinGW編譯器對windows下的SSE2指令的支援有些問題。如果使用VC編譯器相信不會有上述的問題。
經測試,OpenCV2.4版本中,BUG已修復,可以使用Release和啟用SSE2。
修改完之後,再次Configure,會去掉紅色的顯示,表示最終的配置引數。點選Generate後,會在OpenCV的安裝目錄(D:\mysdk\opencv24)下生成Makefile。至此,配置完成。
編譯與安裝
執行CMD,進入OpenCV安裝目錄,執行mingw32-make -f Makefile進行編譯,大約要一個小時左右,待編譯完成後,執行mingw32-make -f Makefile install進行安裝。最後會在OpenCV的安裝目錄下的install目錄下,看到編譯好的庫和標頭檔案,這些是最終需要的檔案。可以把OpenCV安裝目錄下除install資料夾外的其它東西全部刪除,然後把install資料夾裡面的東西複製到OpenCV安裝目錄下。
如果編譯出現錯誤,可以試試MinGW64裡面提供的編譯器,或者使用釋出版的原始碼,地址詳看參考網址。
注意:也可以使用mingw32-make和mingw32-make install進行編譯,安裝。
編譯好的庫
編譯好之後,在安裝目錄下的install目錄,就是編譯好的庫和標頭檔案。