Win10 qt msvc配置opencv

1、背景需求

在win10系统下安装配置opencv环境,并用qt开发相关软件。但是目前系统安装有VS2017和基于MSVC编译器的opencv库,不能直接用。

2、问题:

Qt 安装有mingw编译器,不能调用基于MSVC编译器的opencv库。

3、解决办法:

编译基于mingw编译器的opencv库,直接利用qt调用opencv,编译opencv又慢错误又多;
重新安装带有msvc编译器的qt软件,然后利用qt调用MSVC的opencv,只需要重新安装qt软件;
综合考虑,选用第二种方法,分析如下:

3.1 msvc(2017版):

Opencv包中包含有vc15(对应2017)其中就有对应的库;
①在Qt工程文件右键->添加库->外部库,其中库文件:引入build/x64/vc15/lib下的库,包含路径:引入build/include
②在.pro文件直接写(路径根据实际情况写):
INCLUDEPATH +=D:/openCV3.4.0/build/include
DEPENDPATH += D:/openCV3.4.0/build/include
③包含opencv包:#include<opencv2/opencv.hpp>,在工程文件处右键,重新编译、执行qmake即可使用

3.2 mingw:

需要用cmake编译opencv 包得到install中的.a文件,而且编译的过程极不顺畅,因为中间会需要两个不能download的文件,需要自行下载: opencv_videoio_ffmpeg_64.dll,opencv_videoio_ffmpeg.dll。
Cmake编译opencv推荐视频(亲测能成):
https://www.bilibili.com/video/BV1Za4y1v7ra
然后编译完成后就可以在qt中引用opencv了,但是运行时程序会异常崩溃 ,原因是找不到libopencv_world420.dll文件,这时需要在编译opencv后的文件夹下的: x64/mingw/bin目录下把这个文件复制到qt项目对应的debug版本或release版本目录下,然后运行成功。

4、解决步骤:

4.1 Qt安装配置

1)下载安装QT,安装的时候把两种编译器都选上,如下图:
在这里插入图片描述
2)安装调试工具因为MSVC2017的构建套件里面没有配置调试工具。
进入微软官网下载Win10 SDK: Win10 SDK下载地址。下载winsdksetup.exe,只选择 Debug for Windows的工具即可,其他都不选择,安装完成之后,QT就会自动进行MSVC的配置(最好重启一下电脑)
3)配置“构建套件”,如下图,直到kit没有黄色的感叹号,主要是“Debugger”一栏,自动选择就可以
在这里插入图片描述

4.2 Qt MSVC 配置opencv

1)首先编译基于mSVC 版的opencv4.5.4,并将opencv下vc15/bin添加到环境变量
2)使用opencv
工程右击选择“添加库”-外部库
在这里插入图片描述
填写相关内容,如下
在这里插入图片描述
Pro文件自动添加如下内容,即可

#win32:CONFIG(release, debug|release): LIBS += -LD:/opencv/opencv454/build/install/x64/vc15/lib/ -lopencv_world454
#else:win32:CONFIG(debug, debug|release): LIBS += -LD:/opencv/opencv454/build/install/x64/vc15/lib/ -lopencv_world454d

#INCLUDEPATH += D:/opencv/opencv454/build/install/include
#DEPENDPATH += D:/opencv/opencv454/build/install/include

5 问题及解决

出现问题“#include <opencv2/opencv.hpp>”在代码文件能补全上面的头文件,可是编译出现找不到上述文件的错误;或者出现“LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突”的错误,刚开始一直以为是opencv库的路径和qt编译器自身的问题,原来是因为opencv编译的是x64版本,使用的qt编译器是x86下32位的版本,最后将qt编译器选成64位并配置,则问题解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值