win10下搭建qt+opencv环境
文章目录
- 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版本
- 截至当前时间,opencv最新版本是4.5.5,但是其
- 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。
- 建议选,Qt installer 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
- 输入OpenCV的源码目录和编译目录
上图中步骤,本次编译64位程序
- opencv源码路径,D:\ProgramFiles\vsopencv-4.5.4
- opencv生成目录,D:\ProgramFiles\vsopencv-4.5.4\output
- 点击
configure
按钮,弹出窗口,配置Qt MinGW 编译器 - Finish后,选择gcc、g++所在路径
- 本地Qt 中gcc路径,D:\ProgramFiles\Qt5.12.12\Tools\mingw730_64\bin\gcc.exe
- 本地Qt 中g++路径,D:\ProgramFiles\Qt5.12.12\Tools\mingw730_64\bin\g++.exe
- 点击 Finish,结束编译器配置,并自动开始执行
configure
操作
configure
配置- 勾选
WITH_QT
- 勾选
WITH_OPENGL
- 不勾选
WITH_IPP
- 设置
CMAKE_BUILD_TYPE
为Release
- 打开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下载不成功的解决方案
- opencv会自动下载FFMPEG,而“https://raw.githubusercontent.com”再国内无法访问,若要继续下载,需要把下载链接中的
【02】
CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install
- 搜索setup关键字,选择去除
OPENCV_GENERATE_SETUPVARS
选项
- 搜索setup关键字,选择去除
【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” \
- 1)这里基本上用不到python,所以可以,
【04】
CMakeFiles\Makefile2:1561: modules/world/CMakeFiles/opencv_test_core.dir/all
- 不勾选
WITH_WEBP
- 不勾选
【05】编译时去掉python的勾选
- build中去掉
python
勾选
- build中去掉
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 );
}
右键项目名词,选择
添加库
,选外部库
- 选择
libopencv_world454.dll.a
所在路径,D:\ProgramFiles\opencv-4.5.4w\x64\mingw\lib\libopencv_world454.dll.a - 头文件所在路径,D:\ProgramFiles\opencv-4.5.4w\include
- 一定要去掉勾选,因为我们编译出来的库只有一个
libopencv_world454.dll.a
- 选择
会在
untitled.pro
文件中生成库的引用右键项目名,
构建
、运行
,执行如下
5 Q&A
5.1 qt安装vcredist_xx报错
- 可使用 “360软件管家” 安装 “微软VC++运行库合集”,以此忽略 qt 的vcredist_xx安装
–end
win10下搭建qt+opencv环境相关推荐
- 选择版本Win7系统VS2010下搭建qt开发环境
这几周一直在研究选择版本之类的问题,下午正好有机会和大家共享一下. win7下vs2010搭建qt环境总算成功了,在此分享一下. 最初选择了VS2012 + qt-windows-opensource ...
- vs2008下搭建qt开发环境
在vs下怎样搭建qt的开发环境呢?本人以自己学习的过程为例子,来总结一下. qt现在已经有了5.0的版本,我现在学习的是4.0版本的.在qt的官网上可以下载到所有的qt版本. 1.搭建qt环境,需要使 ...
- Windows环境 和 Linux环境下搭建Qt开发环境
因为专业学习需要,专业开设了<linux桌面应用程序设计>课程,现在都快结课考试了,实验到了该提交的时候了,可是环境还没搭建起来,在网上找了好几次,好多都是需要去官网下载什么的,连接是一层 ...
- Windows平台下搭建Qt编译环境(VS2008)
1.下载文件 下载 Qt libraries 4.6.3 for Windows (VS 2008, 194 MB) http://qt.nokia.com/downloads 下载qt-vs-add ...
- 【Qt】在Win10上搭建Qt开发环境
1.Qt Creator与Qt SDK Qt Creator是为开发Qt程序提供了代码编辑环境. Qt SDK 为开发者提供了必要的类和函数以及相关工具. 2.安装Qt Creator 双击运行:qt ...
- linux下搭建qt开发环境
不知不觉发现自己已经差不多近一年多没有在linux下开发程序了,担心有些东西会忘记,所以还是应该偶尔去linux下写点什么,于是去下载ubuntu. 打开官网一看,竟然最新版本是22.04了,多么令人 ...
- WIndows下搭建Qt开发环境 -- Qt 、Qt Creater 安装、配置
[本文发布于https://blog.csdn.net/Stack_/article/details/122491885,未经许可不得转载,转载须注明出处] 一.需要下载安装哪些文件 1 Qt SDK ...
- 搭建Android+QT+OpenCV环境,实现“单色图片着色”效果
OpenCV是我们大家非常熟悉的图像处理开源类库:在其新版本将原本在Contrib分库中的DNN模块融合到了主库中,并且更新了相应文档.这样我们就能够非常方便地利用OpenCV实现一些属于DeepLe ...
- 使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建
使用飞凌嵌入式IMX6UL-C1板子--qt+opencv环境搭建 准备工作: Ubuntu18.04虚拟机环境 飞凌官方提供的qt-tslib库,gcc交叉编译器,opencv源码库,qt源码,具体 ...
最新文章
- iOS7的界面上移问题
- jupyter读取图片并展示的两种方法
- UNITY 的GC ALLOC到底是什么
- 提取某一个镇的行政边界_接口测试:A04_HttpRunner通用_02_提取数据_02_regex方式
- python怎么创建变量_python怎么创建变量
- Nginx 配置实现web解析php代码 过程记录
- [轉]VS2010 UML类图生成代码
- EditPlus3.1工具以及Js插件(打包下载)
- Spring Boot 接入支付宝,实战来了!
- 平时使用计算机时有哪些不安全的做法,KVM设备在使用时都有哪些安全隐患?
- 高中计算机应用面试教资真题,2019下半年高中信息技术教师资格证面试试题(精选)第四批...
- 谷歌浏览器fash弹框的设置
- day_8——LeetCode1:两数之和
- element-ui——timeline时间线组件+自动滚动+v-infinite-scroll无限滚动+动态加载——技能提升
- 专注B2B跨境支付的背后,XTransfer的风控基础设施是如何炼成的?
- 【luogu P1456 Monkey King】 题解
- 灵性图书馆:好书推荐-《太傻天书》
- EBS-PO接收控制状态的处理
- 每一个感动都值得流泪 转帖
- 几个不错的国外免费虚拟主机 Free host