msvc使用微软的VC编译器。针对不同版本Qt,使用Opencv的方式也不同。

区别

  • msvc, 可以使用opencv-for-window中对应的vc编译版本;
  • mingw,需要使用Qt的qmake和对应编译器,使用opencv源码进行编译;

mingw编译Opencv

环境

  • 操作系统: windows10
  • Qt版本: Qt5.8_mingw5.3.0 32bit
  • Opencv版本: Opencv 3.10 Or 3.20
  • cmake: cmake-gui 3.8.0

: mingw编译器和Opencv版本需要对应,版本不对,配置过程难以完成。

编译过程

1.下载Opencv源码

2. 安装cmake并在Qt中找到cmake

Qt_mingw搭建opencv开发环境

3.打开CMakeList文件

【Qt Creator】-【文件】-【打开文件或工程】- 找到源码中的makelist文件并打开

弹出的配置窗口,选择编译配置环境为mingw

4. 配置cmake

进入项目,并选择release
Qt_mingw搭建opencv开发环境

等待Qt完成CMakeList文件读取,在CMake选项中进行配置,设置编译结果导出位置,CMAKE_INSTALL_PERFIXBUILD_opencv_world。前者设置编译输出结果位置,后者设置opencv最终结果为一个库文件。
Qt_mingw搭建opencv开发环境

配置完成以后,按下下方的Aplly按钮。

5. 配置构建选项

Qt_mingw搭建opencv开发环境

6. 开始构建

Qt_mingw搭建opencv开发环境

搭建开发环境

1. 添加头文件路径和库

在工程的.pro文件中,设置头文件路径和头文件

INCLUDEPATH += D:/opencv/OpencvMingw/build/opencv-3.1/include
LIBS += D:/opencv/OpencvMingw/build/opencv-3.1/x86/mingw/lib/libopencv_*

2. 添加bin到环境变量

在系统环境变量中添加bin文件路径。

3. 简单图片显示

#include <QCoreApplication>
#include <QDebug>

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug() << "start";

    cv::Mat im0 = imread("d://dlrb.png");
    namedWindow("Qt OPENCV DEMO");
    imshow("Qt OPENCV DEMO", im0);

    waitKey(-1);

    return a.exec();
}

问题

编译运行,报错并提示 exited with code -1073741510,该问题主要是由于环境变量未生效造成的,将bin目录下的dll复制到可执行文件目录下即可。

参考

相关文章:

  • 2022-02-11
  • 2022-12-23
  • 2021-08-01
  • 2021-08-16
  • 2021-11-09
  • 2022-01-17
  • 2022-12-23
猜你喜欢
  • 2021-09-10
  • 2021-08-18
  • 2021-05-08
  • 2021-12-20
  • 2021-12-21
  • 2021-04-23
  • 2021-05-29
相关资源
相似解决方案