Qt5.14+Opencv4.1+CMake3.22配置

最近准备学习Qt与Opencv,在开始学习前,配置出了不少问题,好不容易才弄好,现在先将大概内容记下来

安装:

Qt5.14+CMake3.22+OPencv4.1

因为我之前都有安装过,所以安装步骤不再赘述,基本上根据提示就能顺利安装完毕。

需要注意的是Qt安装的时候选择的是Mingw64安装,且选择所有需要的组件(在配置过程中因为安装的不顺利重装过一次,应该有组件没安装完全的关系,所有后面把组件都装了,也不算很占空间)

其他两个按照版本安装应该就没问题了大概 可能需要注意版本对应的关系(我最开始安装的OpenCV应该是4.5以上,是以前安装的很新的版本,然后早cmake的时候红色里面有一个和别的教程说的不一样的Qt6_DIR,后面编译在15%左右就一直出问题解决不了,最后换成了4.1的版本就没出这个问题了,但是不确定是不是这个原因)

配置:

配置的过程其实不算很复杂,有相关经验的话一般都能理解。

1 设置环境变量

首先需要确认设置了Qt、CMake环境变量:

扫描二维码关注公众号,回复: 15232399 查看本文章

 

 这里确认有红色框里面的三个环节变量应该就行了,如果说有弹出环境变量太大的问题,可以创建拓展一个新的环境变量加上%代替原路径,如%Qt%。

2 CMake构建

接下来就是打开CMake的GUI进行构建的步骤了。

下载安装的OpenCV一般有如图所示的除了红框内的这些内容,新建一个文件夹作为输出构建目录

 在CMake中分别选择源目录和输出构建目录,如图,勾选Advanced

 选择configure,进行设置MinGW Makefiles->specify native comilers,选择Next

 选择编译器gcc.exe 对于C、g++对于C++,路径参照下图,一般在Tools->mingw730_64->bin中

 点击Finish需要等待一段时间结束后,会出现很多红色提示,这里主要下拉勾选WITH_OPENGL和WITH_QT

 

 因为我在最后安装的时候弹出了报错和python有关,参考别人的文章可能是因为安装了Anaconda以后自动检测到python路径并且为其自动build了python的opencv链接导致的,所以可以取消掉Python有关的选项(也可以不管它,等后面报错的时候重新构建就好了,我看很多人也有没出现问题的)

 添加实体OPENCV_VS_VERSIONINFO_SKIP=1,如图(这里我是在大概30%到40%左右时提示报错的,看网上的介绍加上这个就可以了)

再次点击Configure,仍然会出现提示,检查对应的目录,如果有问题就修改,如果没有问题就继续configure一直到红色消失再点击Generate

3 编译

到这里先进入之前新建的输出构建目录(我这里命名为withQt),按shift键,右键鼠标选择在此处打开Powershell窗口(s),在弹出的窗口出输入

mingw32-make -j 8

加入-j 8可以让cpu进行多任务处理加快速度,但是不用也可以,也可以用

mingw32-make

 进度达到100%以后,输入

mingw32-make install

 

完成之后,退出,将 withQt\install\x64\mingw\bin 路径加入环境变量

4 测试 

打开Qt Creator,新建一个项目进行测试,注意选择MinGW版本的。

为了能在Qt中使用,需要将opencv的库加入Qt的include的路径中,看网络上的介绍有几种方法:

(1)在.pro中加入

INCLUDEPATH += D:\OpenCV\opencv\withQt\install\include
LIBS += D:\OpenCV\opencv\withQt\lib\libopencv_*.a

(2)或者同样在.pro中加入

INCLUDEPATH += D:\OpenCV\opencv\withQt\install\include
CONFIG(debug, debug|release): {
LIBS += D:\OpenCV\opencv\withQt\lib\libopencv_*.a
 
} else:CONFIG(release, debug|release): {
 
LIBS += D:\OpenCV\opencv\withQt\lib\libopencv_*.a
 
}

测试配置的结果,在main.cpp文件修改为:

#include "mainwindow.h"
#include"opencv2/opencv.hpp"
#include <QApplication>
int main(int argc, char *argv[])
{
   
   
    QApplication a(argc, argv);
    using namespace  cv;
    Mat image=imread("../learn_opencv/data/1.jpg");
    imshow("output",image);
//    MainWindow w;
//    w.show();
    return a.exec();
}
 
 

主要问题:

1.在15%时报错

 解决方法:根据对比网上的内容,发现自己的构建时多了一个Qt6_DIR,在尝试各种方法以后,考虑可能是版本的原因,将OpenCV由最新版换成4.1解决了问题

2.在35%提示

collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1800: bin/libopencv_core451.dll] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:1794: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

 解决方法:添加在CMake的GUI中添加OPENCV_VS_VERSIONINFO_SKIP = 1,重新构建编译

3.安装98%时,提示:

mingw32-make[2]: *** [modules\python2\CMakeFiles\opencv_python2.dir\build.make:76: modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:3365: modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

 解决方法:网上给的建议是CMake构建时直接关掉所有和python有关的内容,但是后面看其实只要关掉有关python2有关的选项应该也行。

参考:

 Qt+OpenCV配置教程(图解亲测)_流楚丶格念的博客-CSDN博客_qt+opencv

 用Cmake 编译OpenCV常见的错误_一枚小菜程序员的博客-CSDN博客_cmake编译opencv出错

 Qt+cmake编译并配置OpenCV问题_秋名鱼酱的博客-CSDN博客

 opencv+QT配置教程(全面版)_Dream_Kite的博客-CSDN博客_qt+opencv

猜你喜欢

转载自blog.csdn.net/qq_45792470/article/details/125774264
今日推荐