Windows10 环境下使用 Cmake 和 MinGW-w64 编译安装 OpenCV 4.0.1
系统及软件环境
- Windows-10-64bit
- MinGW-w64-x86_64-8.1.0-release-posix-seh-rt_v6-rev0
- CMake-3.13.1
- opencv-4.0.1-vc14_vc15
安装 MinGW-w64 并配置其环境变量
通过 window 安装文件来安装
下载 MinGW-w64,下载地址: MinGW-w64 - for 32 and 64 bit Windows
安装 MinGW-w64.以管理员的身份执行安装程序,根据自己环境的情况选择安装的包

然后执行下一步,如果这步出现错误就通过离线的方式来配置

离线配置 MinGW-w64. 如果使用
.exe文件安装出现错误,可以通过离线的方式来配置 MinGW-w64. 具体步骤参考下面内容。
通过离线包进行安装
下载对应版本的离线包,下载地址:x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
提取文件到任意路径,我是直接放在
C:\目录下;配置环境变量,将
X:\mingw64\bin(X为提取目录) 添加到环境变量的path变量中,然后打开命令行执行器输入gcc -v, 如果出现对应的版本号则表示配置成功。
使用 Cmake 生成 OpenCV 的 Makefile
下载对应平台的 cmake 并安装,下载地址: cmake
下载 Opencv 安装文件,这里我下载的是
opencv-4.0.1-vc14_vc15.exe, 下载地址: opencv运行
opencv-4.0.1-vc14_vc15.exe,将文件提取到指定目录,我这里提取到D:\打开 cmake-gui,设置源码路径和编译文件路径,

点击
Configure,设置编译器- Specify the generator for this project:
MinGW Makefiles - Specify native compilers
- Next
- Compilers C:
C:\mingw64\bin\gcc.exe - Compilers C++:
C:\mingw64\bin\g++.exe Finish


设置好后所有的配置都是红色的。(这一步中间过程会下载两个文件,分别为
opencv_ffmpeg.dll和opencv_ffmpeg_64.dll,但是由于网络原因可能会下载失败,具体解决办法参见错误解决方法)
- Specify the generator for this project:
编译配置:(具体根据自己的需求进行添加和去除)
- 勾选
WITH_OPENGL - 不勾选
WITH_IPP - 不勾选
ENABLE_PRECOMPILED_HEADERS
- 勾选
配置好后,再次点击
Configure,此时配置会变成白色。然后点击Generate生成 Makefile
编译 Opencv
打开终端进行编译:(-j 是使用 8 个线程进行编译,请根据你的计算机配置合理设置线程数)
D: |
可能遇到的错误及解决方法
在配置 Makefile 文件时,卡在下载
opencv_ffmpeg.dll和opencv_ffmpeg_64.dll文件解决方法:
- 在下载上述文件时会在
D:\opencv\sources\.cache\ffmpeg文件目录下生成对应的缓存文件,需要下载的文件可以在D:\opencv\build\bin目录下找到(文件名可能不一样,需要进行修改)。 - 将
D:\opencv\build\bin的文件复制到D:\opencv\sources\.cache\ffmpeg目录下,并将名字改为原缓存文件夹中文件对应的名字 - 生成 Makefile 遇到下载错误时,会生成错误日志,文件路径为
D:/opencv/mingw-build2/CMakeDownloadLog.txt,你也可以通过该日志文件中的链接下载对应的文件,总共有 3 个,另外一个是ffmpeg_version.cmake
- 在下载上述文件时会在
更多编译遇到的问题见参考链接中的文章!
