1. 准备
1.1 下载并安装 OpenCV
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142502368-1799822875.png)
1.2 下载并安装 CMake
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142529175-817952137.png)
1.3 下载并安装 Qt
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142556175-662092721.png)
2. 编译 OpenCV
2.1 编译前
为 MinGW 编译器添加系统环境变量,路径如下:
"C:QtQt5.10.1Toolsmingw530_32in"
"C:QtQt5.10.15.10.1mingw53_32in"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142615929-75478446.png)
打开并在 opencv 目录下创建 release 目录,用于存放编译后的文件
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142631066-1964200193.png)
打开 CMake 软件
在 Where is the source code 中填入 "C:/opencv/sources";
在 Where to build the binaries 中填入 "C:/opencv/release";
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142643867-808419153.png)
点击 "Configure" 按钮;
选择 "Specify native compilers";
在 Specify the generator for this project 的下拉菜单中选择 "MinGW Makefiles";
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142655091-2090931364.png)
点击 "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"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142711036-977260051.png)
点击 "Finish" 按钮开始执行配置
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142722377-914150285.png)
配置完成后,会出现如下界面
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142736432-928058931.png)
在搜索框中输入 "qt",将 "WITH_QT" 项的复选框勾选上
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142755892-422284092.png)
将 "WITH_OPENGL" 项的复选框勾选上
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142811000-1936843501.png)
在 " CMAKE_BUILD_TYPE" 项的 value 中输入 "Release"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142826279-243687366.png)
点击 "Configure" 按钮,正常情况下(国情),配置过程 "opencv_ffmpeg.dll"、"opencv_ffmpeg_64.dll"、"ffmpeg_version.cmake" 这3个文件会下载失败,具体查看编译目录下的 "CMakeDownloadLog.txt" 日志文件,可以通过其他方法下载这三个文件后放入对应的目录下,再点击 "Configure" 按钮。
配置完成后,点击 "Generate" 按钮
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142838241-348476810.png)
添加环境变量
"C:opencv eleasein"
"C:QtQt5.10.1ToolsQtCreatorin"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142900016-1692383231.png)
2.2 开始编译
到 release 目录,按 "Shift + 右键" ,然后选择 "在此处打开 Powershell 窗口(s)",输入 "mingw32-make"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142916577-1929742601.png)
问题及解决方法
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"
![](https://img2018.cnblogs.com/blog/1370690/201912/1370690-20191207142930150-356259567.png)