网站首页 > 文章精选 正文
我的开发环境
VS2021
Qt5.14.2
OpenCV4.5.5
配置目的:想用OpenCV开发视频相关软件,并且Windows下C#已经开发完成,想把其转化为QT下C++完成,所以想现在Windows下调试、翻译后,然后在直接移植到Ubuntu下。所以对Windows下的编译环境要求不是很大。先完成后再在Ubuntu下配置环境
一、开始记录之前先看下Windows下MSVC和minGW编译器的区别:
MSVC:即Microsoft Visual C++ Compiler,即微软自己的编译器我们下载Windows下的OpenCV时,会带两个文件夹VC14,VC15(分别与Visual Studio的版本有对应关系),这两个文件夹下的库可以直接运行不需要编译将VS作为Qt的开发环境也是使用这个编译器的缘故
MinGW:我们都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW则是指Minimalist GNU for Windows的缩写它是将GNU开发工具移植到Win32平台下的产物,即一套Windows上的GNU工具集用其开发的程序不需要额外的第三方DLL支持就可以在Windows下运行,相对地,不使用动态库导致的就是编译出来的程序大很多。也是可以设置使用静态库的
简单概括就是用MSVC编译器不需要自己编译OpenCV库,用MinGW需要用Cmake编译OpenCV库(及其繁琐)
所以暂且就用MSVC编译器来配置和使用OpenCV,Qt的安装过程中需要注意事项:
具体的安装可以参考文章:https://www.dianyuan.com/eestar/article-2864.html
二、QT中配置MSVC:
安装完QT之后,进入 工具->选项->Kits,会发现MSVC的前面会有黄色感叹号,如下所示:
这是因为MSVC2017的构建套件里面没有配置调试工具。
在vs里面进行更改安装项,选择下列图片上的项目安装
安装两个.cdb调试器,最新sdk下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/,值需要安装debuging tools for Windows就可以
安装完成后,打开qt creator的工具–选项–kits–编译器,这时候图片中的划线位置就可以选择了,
二、下面就是opencv的使用:
1.新建一个Qt项目
2.建立项目文件名和选择你需要的路径
3.选择编译器(这里划重点)
图中的二个编译器分别是
1.微软官方提供的编译器
2.MinGW是一款开源的window下专用的编译器
因为我们下载的opencv 已经提供好了对windows下opencv的编译,如果我们选用其他的非微软的编译器,就需要重新编译。例如工业上使用非常多的cmake进行编译,之后就可以使用别的编译器对我们的程序进行编译。在这里我们使用微软自带的编译器。
4.后面就没什么需要注意的了,也不需要更改,一路下一步
第三步:
根据我们的opencv所在位置给我们的项目文件添加头文件和库目录
添加完成之后的图片,配置和在vs中原理相同,方法不一样而已。
添加的时候不要照抄,根据自己的环境来配置。
添加完之后先编译一下,让我们的opencv头文件生效--左下角的小锤子。否则可能会产生添加头文件没有效果的状态。
最后实验我们的成果,显示一张图片
可以看到成功显示了图片和Qt的ui界面。
过程中出现问题:msvc-version.conf loaded but QMAKE_MSC_VER isn't set
解决方案: 打开文件D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\common\msvc-version.conf 在其中添加版本QMAKE_MSC_VER = 1900,就可以解决
猜你喜欢
- 2025-01-14 Qt界面——搭配QCustomPlot
- 2025-01-14 Qt支持RKMPP硬解的视频监控系统/录像存储和回放/云台控制
- 2025-01-14 东营交警实名曝光一批酒驾人员名单 88人受处罚
- 2025-01-14 Java的优势:跨平台只是一部分
- 2025-01-14 VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 2025-01-14 Qt添加MSVC构建套件的方法
- 2025-01-14 Qt开发-基本工具的使用
- 2025-01-14 新型结构四旋翼无人机视觉导航中,半物理仿真平台是怎样设计的?
- 2025-01-14 qt for webassembly环境搭建图文教程
- 2025-01-14 Qt .pro和.qrc创建及介绍
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)