1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Windows下Qt+minGW+CMake+opencv配置--方法总结 文件分享与排错分享

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

时间:2021-01-31 03:41:06

相关推荐

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

文章目录

1. 配置环境与概述2.参考方法3. minGW32-make遇到的错误3.1. 解决策略3.2. 解决步骤3.3 源文件分享4. Qt配置4.1 将bin文件加入环境变量4.2 在.pro文件中加入下面的代码,路径以自己的为准4.3 写个小程序,编译运行

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.参考方法

方法1:白嫖配置好的文档+配置Qt,有个人发博客说可以,我试了一下在各个版本编译下载好的Opencv包下载的3.3.1,成功运行了,省时间的建议直接这种。方法2:用Qt编译

用Qt Creator编译opencv并配置开发环境方法3:用CMake编译

opencv+Qt+cmake安装配置

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源文件**

链接:/s/1fB2FgGI4yPk-ZqUjQbxcXA

提取码:bt3e

4. Qt配置

4.1 将bin文件加入环境变量

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

INCLUDEPATH += D:/042802/opencv/build/include/opencv2INCLUDEPATH += D:/042802/opencv/build/include/LIBS += D:/042802/opencv/opencv-build/bin/libopencv_calib3d430.dllLIBS += D:/042802/opencv/opencv-build/bin/libopencv_core430.dllLIBS += D:/042802/opencv/opencv-build/bin/libopencv_highgui430.dllLIBS += D:/042802/opencv/opencv-build/bin/libopencv_imgcodecs430.dllLIBS += 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;}

结果图示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。