window10 Qt自带MinGW+CMake3.15编译OpenCV4.1
OpenCV是使用C/C++编写的,官方网站提供的版本Qt不能直接使用,需要使用CMake重新编译Qt可用的版本。
1、下载安装Qt,网址:,需要注册,安装时选择组件MinGW
2、下载安装CMake,网址:,安装最新版本3.15, 安装时注意勾选“Add CMake to the system PATH for all users”
3、下载OpenCV4.1源码,网址:,下载最新版本4.1.0
>> 修改系环境变量
在Path变量中新增mingw32-make所在目录
>> 打开CMake (cmake-gui)应用程序
设置源码路径和OpenCV导出路径
-
Where is the source code: C:UsersadminDesktopopencv-4.1.0 Where to build the binaries: C:UsersadminDesktopopencv_build
点击 Configure,设置编译器
-
Specify the generator for this project: MinGW Makefiles Specify native compilers Compilers C: C:SoftwareQtToolsmingw730_64ingcc.exe Compilers C++: C:SoftwareQtToolsmingw730_64ing++.exe
再次点击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
原因:这是因为没有选择MinGW编译器,勾选右上角Grouped、Addvanced,会显示CMAKE_MAKE_PROGRAM项,把路径设置为C:SoftwareQtToolsmingw730_64inmingw32-make.exe,重新点击Configure,问题解决!
搜索框搜索以下宏定义
-
勾选WITH_OPENGL 勾选WITH_QT 不勾选WITH_IPP 不勾选ENABLE_PRECOMPILED_HEADERS 不勾选 WITH_OPENCL_D3D11_NV,否则会报错‘D3D11_TEXTURE2D_DESC’ was not declared in this scope
再次点击Configure,没有问题点击Generate.
>> 打开CMD终端,进入导出目录
执行mingw32-make
执行mingw32-install
>> 提取头文件及库
编译好之后,把下面三个文件夹提取出来放在一个新目录下,比如:C:UsersadminDesktopopencv410
-
opencv_buildinstallinclude文件夹 opencv_buildlib文件夹 opencv_buildin文件夹
>> Qt项目添加Opencv库
.pro文件添加如下内容(库路径视需要添加):
LIBS+= -L$$PWD/opencv410/bin -llibopencv_highgui410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_core410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_imgproc410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_imgcodecs410 INCLUDEPATH += $$PWD/opencv410/include
参考: