文章目录

  • 1 qt
  • 2 cmake
  • 3 opencv
  • 4 demo
  • 5 Q&A
    • 5.1 qt安装vcredist_xx报错

原本使用pyqt开发界面程序,但是pyinstall打包后的程序实在太大,我做了一个显示yuv图片的小界面程序,打包后的单文件竟然480Mb,真的好无语。。。

遂转向 qt+opencv,其开发环境搭建起来真的好费劲,也是折腾了好久才完成,以本文记录其过程。

  • info

    • qt-opensource-windows-x86-5.12.12
    • opencv-4.5.4
      • 截至当前时间,opencv最新版本是4.5.5,但是其Upgraded builtin protobuf from 3.5.2 to 3.19.1,由于其版本过新,而Qt 自带的mingw 7.3 不兼容,会编译报错,所以本次选择了opencv-4.5.4版本
    • cmake-3.22.1-windows-x86_64
  • Note
    • 后来者也可以折腾其他的版本搭配方案,一开始我想使用opencv-4.5.5,折腾好久都没能成功,里面有个protoc库的编译问题,望注意

1 qt

网上有好多qt的安装图示教程,这里不再赘述,QT5.14及以下建议在断网情况下安装,要不然还要输入qt 账号与密码,若不嫌繁琐的话,也可以使用联网安装。

QT安装包一般比较大,建议通过国内镜像网站下载

  • 清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
  • 组件选择时
    • Qt5.12.12中,选择Mingw64
    • Developer and Designer中,勾选 Qt Creator 4.8.2 CDB、MinGW7.3.0 64-bit
  • 许可协议选择
    • 建议选,Qt installer LGPL协议

      • GNU常见的开源版权有两种,GPL和LGPL
      • GPL:通过修改GPL协议的code或者使用GPL软件的库,那么你所开发的软件必须遵循GPL,也就是说必须公开源代码
      • LGPL:通过修改LGPL协议的code,那么开发的软件必须遵循LGPL;但如果通过库的方式使用LGPL软件,则无需遵循LGPL。
  • Note
    • opencv中protoc高版本库在MinGW7.3.0下编译会报错的,在选择opencv版本时需三思

QT安装完成后,配置下环境变量,把如下目录加入path环境变量中

  • D:\ProgramFiles\Qt5.12.12\5.12.12\mingw73_64\bin
  • D:\ProgramFiles\Qt5.12.12\Tools\mingw730_64\bin
  • 需根据自己的实际情况配置

2 cmake

  • CMake下载地址:https://cmake.org/download/
  • 打开下载好的cmake-3.22.1-windows-x86_64.msi,可参考网上的步骤安装

3 opencv

  • OpenCV下载地址:https://opencv.org/releases/ 版本为opencv-4.5.4
  • 选择解压目录,解压,解压完成后软件会自动关闭
  • 使用CMake配置并编译OpenCV
    • 创建目录:vsopencv-4.5.4\output

    • 打开CMake

      • 输入OpenCV的源码目录和编译目录

        • D:\ProgramFiles\vsopencv-4.5.4
        • D:\ProgramFiles\vsopencv-4.5.4\output

    • 上图中步骤,本次编译64位程序

      1. opencv源码路径,D:\ProgramFiles\vsopencv-4.5.4
      2. opencv生成目录,D:\ProgramFiles\vsopencv-4.5.4\output
      3. 点击configure按钮,弹出窗口,配置Qt MinGW 编译器
      4. Finish后,选择gcc、g++所在路径
      5. 本地Qt 中gcc路径,D:\ProgramFiles\Qt5.12.12\Tools\mingw730_64\bin\gcc.exe
      6. 本地Qt 中g++路径,D:\ProgramFiles\Qt5.12.12\Tools\mingw730_64\bin\g++.exe
      7. 点击 Finish,结束编译器配置,并自动开始执行 configure 操作
    • configure配置

      • 勾选 WITH_QT
      • 勾选 WITH_OPENGL
      • 不勾选 WITH_IPP
      • 设置 CMAKE_BUILD_TYPERelease
      • 打开BUILD项,
        • BUILD_opencv_world: 将.lib或者.dll文件统一整合进一个world文件中,方便使用,若对大小太敏感的请不用勾选
        • BUILD_SHARED_LIBS: 生成动态链接库dll需要勾,静态不需要勾选
    • configure后会出现一片红,一片红就一个一个解决,不然后面的编译就失败,解完后,再去configure,直到没有红色条目出现为止

      • 【01】FFMPEG: Download failed: 35;"SSL connect error"

        • opencv会自动下载FFMPEG,而“https://raw.githubusercontent.com”再国内无法访问,若要继续下载,需要把下载链接中的https://raw.githubusercontent.com/ 替换为为https://raw.fastgit.org/
        • 修改文件,D:\ProgramFiles\vsopencv-4.5.4\3rdparty\ffmpeg\ffmpeg.cmake
        • 建议自己下载相关库,做替换,具体操作方法,推荐:FFmpeg或ippicv下载不成功的解决方案
      • 【02】CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install

        • 搜索setup关键字,选择去除 OPENCV_GENERATE_SETUPVARS选项
      • 【03】CMakeFiles\opencv_python2.dir/objects.a(cv2.cpp.obj):cv2.cpp:(.text$initcv2+0x2bbe): undefined reference to '__imp_Py_InitModule4',解决方法有2个

        • 1)这里基本上用不到python,所以可以, I disabled python flag in cmake ( -DBUILD_opencv_python2=OFF)
        • 2)MS_WIN64 need to be add to C(XX)_FLAGS for mingw64 (-DMS_WIN64)
        • -DCMAKE_C_FLAGS_RELEASE=“-O3 -DNDEBUG -DMS_WIN64”
          -DCMAKE_C_FLAGS_MINSIZEREL=“-Os -DNDEBUG -DMS_WIN64”
          -DCMAKE_C_FLAGS_DEBUG=“-g -DMS_WIN64”
          -DCMAKE_C_FLAGS_RELWITHDEBINFO=“-O2 -g -DNDEBUG -DMS_WIN64”
          -DCMAKE_CXX_FLAGS_RELEASE=“-O3 -DNDEBUG -DMS_WIN64”
          -DCMAKE_CXX_FLAGS_MINSIZEREL=“-Os -DNDEBUG -DMS_WIN64”
          -DCMAKE_CXX_FLAGS_DEBUG=“-g -DMS_WIN64”
          -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=“-O2 -g -DNDEBUG -DMS_WIN64” \

      • 【04】CMakeFiles\Makefile2:1561: modules/world/CMakeFiles/opencv_test_core.dir/all

        • 不勾选 WITH_WEBP
      • 【05】编译时去掉python的勾选

        • build中去掉 python 勾选
    • configure后且没有报err,即可进行generate操作

    • 打开powerShell,进入目录D:\ProgramFiles\vsopencv-4.5.4\output

    • 执行mingw32-make.exe -j 16,这里编译的时间有点长,需耐心等待

      • Note,若Qt 把minGW32、minGW64 都加入系统环境变量中,那么这里编译时,有时候会报32位不兼容问题,那是因为mingw32-make.exe用成了minGW里面的那个,最后Qt 配置时先不配minGW32
    • 编译100%完成后,输入mingw32-make.exe install

    • 另外再将opencv加入环境变量,D:\ProgramFiles\opencv-4.5.4\x64\mingw\bin

    • 修改完环境变量后,记得重启电脑

4 demo

  • 创建Qt 项目
  • 修改文件mainwindow.cpp,内容如下
#include "mainwindow.h"
#include "ui_mainwindow.h"#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);Mat image=imread("D:/test.jpg");namedWindow("Display window", WINDOW_AUTOSIZE );imshow("Display window", image );
}
  • 右键项目名词,选择添加库,选外部库

    1. 选择libopencv_world454.dll.a所在路径,D:\ProgramFiles\opencv-4.5.4w\x64\mingw\lib\libopencv_world454.dll.a
    2. 头文件所在路径,D:\ProgramFiles\opencv-4.5.4w\include
    3. 一定要去掉勾选,因为我们编译出来的库只有一个libopencv_world454.dll.a
  • 会在untitled.pro文件中生成库的引用

  • 右键项目名,构建运行,执行如下

5 Q&A

5.1 qt安装vcredist_xx报错

  • 可使用 “360软件管家” 安装 “微软VC++运行库合集”,以此忽略 qt 的vcredist_xx安装

–end

win10下搭建qt+opencv环境相关推荐

  1. 选择版本Win7系统VS2010下搭建qt开发环境

    这几周一直在研究选择版本之类的问题,下午正好有机会和大家共享一下. win7下vs2010搭建qt环境总算成功了,在此分享一下. 最初选择了VS2012 + qt-windows-opensource ...

  2. vs2008下搭建qt开发环境

    在vs下怎样搭建qt的开发环境呢?本人以自己学习的过程为例子,来总结一下. qt现在已经有了5.0的版本,我现在学习的是4.0版本的.在qt的官网上可以下载到所有的qt版本. 1.搭建qt环境,需要使 ...

  3. Windows环境 和 Linux环境下搭建Qt开发环境

    因为专业学习需要,专业开设了<linux桌面应用程序设计>课程,现在都快结课考试了,实验到了该提交的时候了,可是环境还没搭建起来,在网上找了好几次,好多都是需要去官网下载什么的,连接是一层 ...

  4. Windows平台下搭建Qt编译环境(VS2008)

    1.下载文件 下载 Qt libraries 4.6.3 for Windows (VS 2008, 194 MB) http://qt.nokia.com/downloads 下载qt-vs-add ...

  5. 【Qt】在Win10上搭建Qt开发环境

    1.Qt Creator与Qt SDK Qt Creator是为开发Qt程序提供了代码编辑环境. Qt SDK 为开发者提供了必要的类和函数以及相关工具. 2.安装Qt Creator 双击运行:qt ...

  6. linux下搭建qt开发环境

    不知不觉发现自己已经差不多近一年多没有在linux下开发程序了,担心有些东西会忘记,所以还是应该偶尔去linux下写点什么,于是去下载ubuntu. 打开官网一看,竟然最新版本是22.04了,多么令人 ...

  7. WIndows下搭建Qt开发环境 -- Qt 、Qt Creater 安装、配置

    [本文发布于https://blog.csdn.net/Stack_/article/details/122491885,未经许可不得转载,转载须注明出处] 一.需要下载安装哪些文件 1 Qt SDK ...

  8. 搭建Android+QT+OpenCV环境,实现“单色图片着色”效果

    OpenCV是我们大家非常熟悉的图像处理开源类库:在其新版本将原本在Contrib分库中的DNN模块融合到了主库中,并且更新了相应文档.这样我们就能够非常方便地利用OpenCV实现一些属于DeepLe ...

  9. 使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建

    使用飞凌嵌入式IMX6UL-C1板子--qt+opencv环境搭建 准备工作: Ubuntu18.04虚拟机环境 飞凌官方提供的qt-tslib库,gcc交叉编译器,opencv源码库,qt源码,具体 ...

最新文章

  1. iOS7的界面上移问题
  2. jupyter读取图片并展示的两种方法
  3. UNITY 的GC ALLOC到底是什么
  4. 提取某一个镇的行政边界_接口测试:A04_HttpRunner通用_02_提取数据_02_regex方式
  5. python怎么创建变量_python怎么创建变量
  6. Nginx 配置实现web解析php代码 过程记录
  7. [轉]VS2010 UML类图生成代码
  8. EditPlus3.1工具以及Js插件(打包下载)
  9. Spring Boot 接入支付宝,实战来了!
  10. 平时使用计算机时有哪些不安全的做法,KVM设备在使用时都有哪些安全隐患?
  11. 高中计算机应用面试教资真题,2019下半年高中信息技术教师资格证面试试题(精选)第四批...
  12. 谷歌浏览器fash弹框的设置
  13. day_8——LeetCode1:两数之和
  14. element-ui——timeline时间线组件+自动滚动+v-infinite-scroll无限滚动+动态加载——技能提升
  15. 专注B2B跨境支付的背后,XTransfer的风控基础设施是如何炼成的?
  16. 【luogu P1456 Monkey King】 题解
  17. 灵性图书馆:好书推荐-《太傻天书》
  18. EBS-PO接收控制状态的处理
  19. 每一个感动都值得流泪 转帖
  20. 几个不错的国外免费虚拟主机 Free host

热门文章

  1. 语音信号作业 清音浊音分析python
  2. insertBefore()方法,
  3. openlayers测试图层删加点
  4. ULEI Token(友利代币)
  5. Unity游戏Mod/插件制作教程06 - Harmony补丁基础
  6. 历届试题 PREV-1 核桃的数量
  7. 我的外包经验:印度、中国和菲律宾(译文)
  8. 力克·胡哲经典励志名言
  9. 一年级孩子应该掌握什么
  10. java toast_【转】【Java/Android】Toast使用方法大全