1. 准备
1.1 下载并安装 OpenCV
1.2 下载并安装 CMake
1.3 下载并安装 Qt
2. 编译 OpenCV
2.1 编译前
为 MinGW 编译器添加系统环境变量,路径如下:
"C:QtQt5.10.1Toolsmingw530_32in"
"C:QtQt5.10.15.10.1mingw53_32in"
打开并在 opencv 目录下创建 release 目录,用于存放编译后的文件
打开 CMake 软件
在 Where is the source code 中填入 "C:/opencv/sources";
在 Where to build the binaries 中填入 "C:/opencv/release";
点击 "Configure" 按钮;
选择 "Specify native compilers";
在 Specify the generator for this project 的下拉菜单中选择 "MinGW Makefiles";
点击 "Next" 按钮;
C 编译器的路径设置为 "C:/Qt/Qt5.10.1/Tools/mingw530_32/bin/gcc.exe";
C++ 编译器的路径设置为 "C:/Qt/Qt5.10.1/Tools/mingw530_32/bin/g++.exe"
点击 "Finish" 按钮开始执行配置
配置完成后,会出现如下界面
在搜索框中输入 "qt",将 "WITH_QT" 项的复选框勾选上
将 "WITH_OPENGL" 项的复选框勾选上
在 " CMAKE_BUILD_TYPE" 项的 value 中输入 "Release"
点击 "Configure" 按钮,正常情况下(国情),配置过程 "opencv_ffmpeg.dll"、"opencv_ffmpeg_64.dll"、"ffmpeg_version.cmake" 这3个文件会下载失败,具体查看编译目录下的 "CMakeDownloadLog.txt" 日志文件,可以通过其他方法下载这三个文件后放入对应的目录下,再点击 "Configure" 按钮。
配置完成后,点击 "Generate" 按钮
添加环境变量
"C:opencv eleasein"
"C:QtQt5.10.1ToolsQtCreatorin"
2.2 开始编译
到 release 目录,按 "Shift + 右键" ,然后选择 "在此处打开 Powershell 窗口(s)",输入 "mingw32-make"
问题及解决方法
Q: ‘nullptr’ was not declared in this scope..
A: 勾选 ENABLE_CXX11
Q: 编译 "opencv/sources/modules/videoio/src/cap_dshow.cpp" 时出错
A: 在该文件的 #include "DShow.h" 前,添加 #define NO_DSHOW_STRSAFE
Q: 编译 "modulesvideoiosrccap_msmf.cpp" 时出错
A: 取消 "WITH_MSMF" 的勾选
输入 "mingw32-make install"