OpenCV-3.4.5的編譯(MinGW-w64)
廢話不多說(shuō),直接上地址:
-
MinGW-w64:https://sourceforge.net/projects/mingw-w64/files/ -
CMake: https://cmake.org/download/ -
OpenCV-3.4.5: https://github.com/opencv/opencv/tree/3.4.5 -
OpenCV-3.4.5_Contrib:https://github.com/opencv/opencv_contrib/tree/3.4.5
說(shuō)明:
1、MinGW-w64編譯器進(jìn)入下載頁(yè)面后下拉選擇x86_64-posix-seh(64位系統(tǒng)適用,32位請(qǐng)選擇i686-posix-sjlj),版本建議選擇MinGW-W64 GCC-8.1.0,不要太往前,C++的一些新特性在舊的編譯器里可能不適用,導(dǎo)致編譯的時(shí)候會(huì)報(bào)錯(cuò)。還有就是一定要選擇POSIX版本,下載win32版本編譯的時(shí)候會(huì)讓你懷疑人生。至于CMake,也是下載對(duì)應(yīng)系統(tǒng)位數(shù)的包。下載壓縮包(.zip)可以直接使用。
2、博主目前在Windows上面只編譯成功過(guò)Opencv-4.0.1和OpenCV-3.4.5,其他版本的OpenCV沒(méi)嘗試過(guò),在Github上面有一個(gè)CSDN博主會(huì)不定期的上傳已經(jīng)編譯好的包供直接使用。他的blog里面還包含一些編譯時(shí)候常見(jiàn)錯(cuò)誤及處理辦法,可供參考。
Portal:https://github.com/huihut/OpenCV-MinGW-Build
都下載完成后,就可開(kāi)始編(zhe)譯(teng)了。
首先,請(qǐng)新建一個(gè)build空目錄。

打開(kāi)CMake目錄,進(jìn)入bin中打開(kāi)cmake-gui.exe。

第一項(xiàng)填源碼目錄,第二項(xiàng)填編譯目錄。然后點(diǎn)Configure。

下拉菜單選擇MinGW Makefiles。這一步需要提前配置MinGW-w64的環(huán)境變量,把編譯器目錄中bin子目錄加入系統(tǒng)環(huán)境變量。(可以在cmd/powershell中輸入gcc -v,有輸出則配置環(huán)境變量成功。)

讀條過(guò)程可能會(huì)有點(diǎn)長(zhǎng),因?yàn)樾枰?lián)網(wǎng)下載一些東西。

配置完成后會(huì)出現(xiàn)一大堆紅色的東西,這時(shí)在Search中輸入extra會(huì)出現(xiàn)
OPENCV_EXTRA_MODULES_PATH
在Value中選擇opencv_contrib-3.4.5目錄下的modules子目錄。清空Search,輸入nonfree,勾選
OPENCV_ENABLE_NONFREE。清空Search,輸入world,勾選
BUILD_OPENCV_WORLD。直到?jīng)]有紅色內(nèi)容出現(xiàn),點(diǎn)擊Genearate,會(huì)在build目錄中生成
Makefile。-
如果想要弄清楚每個(gè)
NAME下面的參數(shù)是什么意思,可以去問(wèn)百度或谷歌或CSDN或Stack Overflow。一般情況下只需要開(kāi)啟上面參數(shù),當(dāng)然如果想編譯python和java版的小伙伴們一定要記著打開(kāi)BUILD_opencv_python和BUILD_JAVA,并確定python和java jdk已經(jīng)在系統(tǒng)環(huán)境變量目錄中。此外OpenCV支持和某些庫(kù)混合編譯,比如CUDA,TBB等,如果有需要編譯這些內(nèi)容務(wù)必勾選與之相關(guān)的項(xiàng)目。
Makefile
第二步,進(jìn)入cmd/powershell。
-
cd到build目錄。 - 輸入
mingw32-make,這里有個(gè)加快編譯的辦法,就是啟動(dòng)多線程編譯,在這條指令后面加上-j(數(shù)字),數(shù)字多少代表線程多少。但請(qǐng)注意最好不要超過(guò)最大線程,不然編譯時(shí)會(huì)報(bào)錯(cuò)。
等待編譯完成。編譯耗時(shí)取決于電腦配置和線程數(shù)量多少。

這一步是最容易出現(xiàn)問(wèn)題的地方,如果有很多報(bào)錯(cuò)而終止編譯請(qǐng)檢查編譯器問(wèn)題。(PS:不得已的情況下不要去修改源碼,否則可能報(bào)更多的錯(cuò)。)
-
出現(xiàn)了問(wèn)題也不要著急,這個(gè)時(shí)候最重要的就是來(lái)杯飲品壓壓驚。然后當(dāng)然是請(qǐng)教度娘或者google或者Stack OverFlow或者CSDN啦。
編譯完成 -
完成編譯后,輸入
mingw32-make install,將OpenCV編譯好的東西安裝至build目錄下install子目錄中。
安裝過(guò)程 -
install目錄
install目錄
至此編譯工作完成。
如何鏈接呢,見(jiàn)下一篇文章吧。:)



