window10 Qt自带MinGW+CMake3.15编译OpenCV4.1

OpenCV是使用C/C++编写的,官方网站提供的版本Qt不能直接使用,需要使用CMake重新编译Qt可用的版本。

1、下载安装Qt,网址:https://www.qt.io/download,需要注册,安装时选择组件MinGW

2、下载安装CMake,网址:https://cmake.org/download/,安装最新版本3.15, 安装时注意勾选“Add CMake to the system PATH for all users”

3、下载OpenCV4.1源码,网址:https://opencv.org/releases/,下载最新版本4.1.0

 

>>  修改系环境变量

在Path变量中新增mingw32-make所在目录

 

>> 打开CMake (cmake-gui)应用程序

设置源码路径和OpenCV导出路径

  • Where is the source code:   C:\Users\admin\Desktop\opencv-4.1.0
  • Where to build the binaries: C:\Users\admin\Desktop\opencv_build

点击 Configure,设置编译器

  • Specify the generator for this project: MinGW Makefiles
  • Specify native compilers
  • Compilers C: C:\Software\Qt\Tools\mingw730_64\bin\gcc.exe
  • Compilers C++: C:\Software\Qt\Tools\mingw730_64\bin\g++.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:\Software\Qt\Tools\mingw730_64\bin\mingw32-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:\Users\admin\Desktop\opencv410

  • opencv_build\install\include文件夹
  • opencv_build\lib文件夹
  • opencv_build\bin文件夹

>> 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

参考:

https://blog.csdn.net/huihut/article/details/81317102

https://blog.csdn.net/huihut/article/details/81317102

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值