本文章主要介紹基於Windows10下如何編譯安裝Opencv的過程,其中遇到過各種各樣奇葩的Bugs,但最終在不斷的嘗試和分析搜索中完成了Opencv-MinGW開發環境的搭建,其主要目的是在沒有安裝搭建Visual Studio的情況下,基於VS Code對Opencv庫的使用需求而做的開發環境,當然在這個過程中也對CMake相關編譯調試過程有了進一步的深入瞭解,接下來我們開始正式進入主題:
一、基本材料準備
1. 預裝Windows10系統PC一臺
2. 下載最新版本Opencv4軟件壓縮包(opencv-4.2.0-vc14_vc15.exe)
3. 下載mingw64編譯軟件(tdm64-gcc-9.2.0)
4. 下載最新版本CMake軟件(cmake-3.17.2-win64-x64.msi)
上述資源如果下載非常慢,請移步我的下載地址:
Opencv4_2+Mingw64+CMake.7z
下載完成之後,分別解壓並安裝各軟件,我習慣將軟件一般安裝在D盤當中,注意在安裝過程中勾選mingw64的環境變量,並在安裝完成之後手動添加環境變量:
Notice1:注意在安裝mingw64的過程當中一定要選擇安裝mingw-64,如果不知道安裝那些包,請直接選擇Full Installation即可。
Notice2:如果在mingw安裝過程中未選擇添加環境變量請手動添加mingw相關環境變量至Path中,如下所示:
注意將mingw的其他文件夾也配置上去
Notice3:請注意,MinGW一定要是用的是MinGW64而不是MinGW,MinGW與MinGW64有着很大的區別,MinGW64是Cygwin的分支,其支持pthread的Linux多線程庫,而對於MinGW則不支持,因此使用MinGW是無法編譯通過的,出現mutex等結構體未定義等錯誤。
二、開始編譯安裝Opencv程序
1. 首先以管理員模式打開CMD命令行,切換到Opencv目錄下(Source旁邊),並新建編譯文件夾:
cd /d D:\opencv\
mkdir mingw_build
2. 以管理員權限打開CMake軟件,設置相關編譯參數
A. 在這裏需要配置好opencv的源代碼路徑以及編譯文件夾,點擊Configure即可觸發配置,第一次配置需要輸入編譯器類型以及Makefile類型:
B. 由於我們使用的是MinGW的編譯方式,需要生成的是MinGW Makefile,編譯器由我們自己來指定-->Next:
C. 點擊Next之後,就需要我們選擇C編譯器以及C++編譯器的絕對路徑了(注意在安裝mingw64的時的位置):
D. 點擊Finished,開始根據選項配置相關文件:
注:在這裏如果沒有配置Opencv源文件中的ffmpeg文件,則會出現報錯信息:opencv_ffmpeg.dll等下載失敗
解決辦法如下:根據報錯信息提供的相關文件的下載地址,手動下載相關文件到Opencv源代碼的ffmpeg文件夾中,如下所示:
在這裏開始配置編譯選項,如下:
- ENABLE_PRECONPILED_HEADERS 取消勾選
- BUILD_opencv_ts 取消勾選
- WITH_CUDA 取消勾選
配置完基本選項之後即可點擊Generate開始生成MinGW Makefile
E. 生成好Makefile之後,我們開始編譯Opencv源代碼
注:在編譯之前,需要在MinGW64-bin文件夾中添加libmingwex-0.dll文件(點擊下載),在編譯的過程中需要用到,否則編譯失敗,將文件放置在如下位置:
接下來正式開始編譯:
F. 開始安裝測試Opencv4.2
1) 編譯結果:
2) 安裝結果:
建立目標,準備安裝
開始安裝
3) 測試Opencv-MinGW64編譯結果
Reference:
1. mingw-w64相關問題:https://www.cnblogs.com/goushibao/p/6673450.html#4581646
2. 編譯OpenCV4.0時opencv_ffmpeg.dll下載失敗解決思路:https://www.cnblogs.com/huluwa508/p/10142718.html