(终极教程)Windows下利用CMake编译opencv及在QT中运行示例

Windows下利用CMake编译opencv及在QT中运行示例


前言

  最近想要编写一个QT程序,需要用到opencv库,花了很长时间去配置编译。网上的教程虽然很多,但我查了很多资料,不是时间太久远,就是用了没效果,因此来记录一下编译的流程,也提供给想要在windows下编译opencv的网友一个参考流程


一、所需工具

  • QT(我的版本号: 5.14.2)官方下载地址
  • CMake(我的版本号: 3.15)官方下载地址
  • opencv C++ 源码(我的版本号: 3.4.10)官方下载地址

二、环境变量配置

1.打开控制面板-所有控制面板项-系统,选择高级系统设置
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第1张图片

2.选择环境变量
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第2张图片

3.在下方系统变量中找到Path,点击右下编辑选项

(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第3张图片

4.点击右方新建按钮,添加如下路径(这是我的路径,需要根据自己存放的地址进行修改)

在这里插入图片描述


三、编译流程

1.为了避免出现error: ‘::hypot’ has not been declared错误,在D:\qt\Tools\mingw730_64\lib\gcc\x86_64-w64-mingw32\7.3.0\include\c++(实际情况根据你存放的路径)中的math.h文件头中加入#define _hypot hypot
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第4张图片

2.打开Cmake工具,设定opencv源码路径以及存放编译后文件的路径,点击Configure
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第5张图片

3.我选用MinGW编译器,选择第二个选项
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第6张图片


4.选择C和C++编译器路径,完成后点击Finish,以下为路径示例:

  • C D:/qt/Tools/mingw730_64/bin/gcc.exe
  • C++ D:/qt/Tools/mingw730_64/bin/g++.exe
    (终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第7张图片

5.等待第一次Configure过程
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第8张图片


6.针对我安装流程中出现的问题,对以下选项做特殊处理:

  • 取消勾选 OPENCV_ENABLE_ALLOCATOR_STATS
  • 勾选 WITH_OPENGL
  • 勾选 WITH_QT

点击 Configure按钮进行配置,进行第2次Configure,
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第9张图片

7.配置选项就全变白了,点击Generate
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第10张图片

8.显示Generating done,即已完成Makefiles文件
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第11张图片

9.命令行(win+R文本框输入cmd)进入自定义的编译文件存放路径,执行mingw32-make -j 8
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第12张图片

  1. 耐心等待很长一段时间,显示如下所示图即已完成编译
    (终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第13张图片

四、运行示例

1.在系统变量中配置环境变量,这里我用之前已经编译好的作为示例

在这里插入图片描述

2.在QT中新建一个项目,基于QWidget或者QMainWindows都行,在.pro文件中增加编译文件中头文件以及动态链接库地址,如下所示代码
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第14张图片


3.在opencv源码的samples/cpp里随便选用一个cpp文件直接复制粘贴到项目的main.cpp,这里用detect_blob.cpp示范,成功运行
(终极教程)Windows下利用CMake编译opencv及在QT中运行示例_第15张图片

总结

    在你的配置过程中可能会遇到其他的问题,如果有其他问题欢迎大家在下方留言,会在第一时间答复

你可能感兴趣的:(windows,cmake,opencv,qt)