Windows下Qt+minGW+CMake+opencv配置--方法总结、文件分享与排错分享

1. 配置环境与概述

Windows10;
Qt 5.9.8;
minGW(Qt内的) 5.3.0;
CMake 3.7.0;
Opencv 4.3.0
版本很重要,不同的版本出错的类型,数量都会不同,大概是版本越老越容易出错。我试了不下5个版本,最终用最新版本才减少了出错。只剩这么一个错误,在外网找了半天,一个小角落里找到了答案。鉴于其他的常见错误很好找,我就不写上来啦!
另一种可能的方法是,直接下载别人配置好了的opencv包。可见各个版本编译下载好的Opencv包。我的用Qt5.9.8配置的Opencv4.3.0文件也会以百度云盘形式放在3.3节,如果网盘失效或者存在其他问题,可滴我q3148842452。

2.参考方法

3. minGW32-make遇到的错误

[ 37%] Linking CXX shared library …\bin\libopencv_core341.dll
CMakeFiles\opencv_core.dir/objects.a: member CMakeFiles\opencv_core.dir/objects.
a(vs_version.rc.obj) in archive is not an object
collect2.exe: error: ld returned 1 exit status
modules\core\CMakeFiles\opencv_core.dir\build.make:2329: recipe for target ‘bin/
libopencv_core341.dll’ failed
mingw32-make[2]: *** [bin/libopencv_core341.dll] Error 1
CMakeFiles\Makefile2:1675: recipe for target ‘modules/core/CMakeFiles/opencv_cor
e.dir/all’ failed
mingw32-make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:161: recipe for target ‘all’ failed
mingw32-make: *** [all] Error 2

3.1. 解决策略

在cmake gui中添加条目OPENCV_VS_VERSIONINFO_SKIP = 1,再重新Configure,Generate。

3.2. 解决步骤

在这里插入图片描述

在这里插入图片描述
随它make好就成功啦,80%-85%可能会跳出成片白色的路径是没影响的。祝大家顺利配置好opencv!
在这里插入图片描述

3.3 源文件分享

Qt5.9.8配置好的opencv4.3.0源文件**
链接:https://pan.baidu.com/s/1fB2FgGI4yPk-ZqUjQbxcXA
提取码:bt3e

4. Qt配置

4.1 将bin文件加入环境变量

在这里插入图片描述

4.2 在.pro文件中加入下面的代码,路径以自己的为准

INCLUDEPATH += D:/042802/opencv/build/include/opencv2
INCLUDEPATH += D:/042802/opencv/build/include/

LIBS += D:/042802/opencv/opencv-build/bin/libopencv_calib3d430.dll
LIBS += D:/042802/opencv/opencv-build/bin/libopencv_core430.dll
LIBS += D:/042802/opencv/opencv-build/bin/libopencv_highgui430.dll
LIBS += D:/042802/opencv/opencv-build/bin/libopencv_imgcodecs430.dll
LIBS += D:/042802/opencv/opencv-build/bin/libopencv_imgproc430.dll

4.3 写个小程序,编译运行

如果显示程序异常结束,可能是因为环境变量还未生效,重启就可以了。
Widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    cv::Mat image=cv::imread("D:/peizhi/xy.jpg",1);
    namedWindow("jmmmm");
    imshow("jmmm",image);
}

Widget::~Widget()
{
    delete ui;
}

结果图示
在这里插入图片描述

  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值