windows系统用cmake编译opencv源码笔记

概述

环境:windows+qt(mingw64位编译器)+opencv + cmake。在网上直接下载的opencv.exe文件是用MSVC编译器编译的,qt(mingw64位编译器)不能直接用,所以自己用cmake编译了一下opencv源码,遇到过一些问题,现记录下来。

内容

qt程序最好不要和有道词典同时使用,同时使用qt有时会卡死。
qt中的项目配置有mingw32和mingw64之分(即64位和32位编译器之分)

0.问题:如果一开始configure的时候就报下面的错误:CMake Error: CMake was unable to find a build program corresponding to “MinGW Makefiles”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
解决:在cmake软件的配置项上将CMAKE_MAKE_PROGRAM项后面的路径设置为Qt安装路径下的路径如下所示:MinGW/bin/mingw32-make.exe,重新点击Configure,问题解决!。

1.问题:cmake 找不到libwinpthread-1.dll
解决;Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将libwinpthread-1.dll复制到C:\Windows\System32目录下。

2.问题:cmake报出应用程序无法正常启动0xc000007b的错误
解决:这个问题在网上找不到答案的,原因是mingw编译器没加到系统环境变量中去。¥PATH。在编译前要配置好环境变量,我增加的是“D:\Qt\Qt-5.14.0\Tools\mingw730_32\bin和D:\Qt\Qt-5.14.0\Tools\mingw730_64\bin”,个人根据Qt的实际安装路径增加路径。环境变量的添加是在桌面右键计算机图标,属性->高级系统设置->高级->环境变量->path

3.问题:Could not find a package configuration file provided by “Qt5” (requested
version 5.7.0) with any of the following names:

Qt5Config.cmake
qt5-config.cmake

Add the installation prefix of “Qt5” to CMAKE_PREFIX_PATH or set “Qt5_DIR”
to a directory containing one of the above files. If “Qt5” provides a
separate development package or SDK, be sure it has been installed.

解决:把C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5复制给qt5DIR。就可以了。在cmake gui上面赋值。因为这个Qt5Config.cmake在这个目录。

4.问题:用Cmake对OpenCV进行Configure,下载opencv_videoio_ffmpeg.dll和opencv_videoio_ffmpeg_64.dll经常失败,
解决方案是:到CMake中设置的Where to build the binaries的路径下去找名为CMakeDownloadLog.txt的文件,里面会有ffmpeg.dll的下载路径,
比如 https://raw.githubusercontent.com/opencv/opencv_3rdparty/6152e132572dfdaa32887eabeb7199bef49b14dc/ffmpeg/opencv_videoio_ffmpeg.dll,
找到路径后,用FDM、IDM、迅雷、百度网盘等下载,速度会更快。下载后复制到你的Where to build the binaries的路径下的3rdparty\ffmpeg里面。

5.cmake编译选项:勾选: WITH_OPENGL、WITH_OPENMP、WITH_QT、BUILD_opencv_world
不勾选: WITH_OPENCL_D3D11_NV

你可能感兴趣的:(cmake,qt,windows,编译器)