1. 程式人生 > >mingw 編譯opencv

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目錄,就是編譯好的庫和標頭檔案。