当前位置: 首页 > news >正文

【QT入门到晋级】window opencv安装及引入qtcreator(包含两种qt编译器:MSVC和MinGW)

前言

        本文主要分享QT的两种编译器环境(MSVC和MinGW)下,安装及引入opencv的方法。

编译器区别

特性​​MSVC​​MinGW​
​编译器类型​微软专有编译器(cl.exe基于GCC的开源工具链
​平台支持​仅Windows跨平台(Windows/Linux/macOS兼容)
​运行时库​Microsoft CRT(如ucrtvcruntimeGNU标准库(glibc或其变体)
​异常处理​结构化异常处理(SEH)标准C++异常(try-catch
​多线程模型​原生Win32线程API支持POSIX线程或Win32线程
​调试工具​Visual Studio强大图形化调试器GDB命令行调试,功能较弱
​第三方库兼容性​需MSVC编译的库(.lib/.dll需MinGW编译的库(.a/.dll.a

                                                (以上内容来源于网络)

        简单的说就是,MinGW编译器是QT通用编译器,适合做跨平台迁移,比如Linux的QTcreator编译OK的代码(只要要没有专门调用linux特性的函数),移植到window时,在MinGW编译器下都能编译通过,本人分享的很多源码,都是可以在linux/window编译通过。

        而MSVC编译器是深度集成了Windows API,比如用visual Studio开发的C++项目,可以很容易的转化为QT项目(处理一些类型,把链接库写到.pro文件中)。

        另外提醒一个坑点,MinGW编译器的代码是可以使用#include<window.h>来使用Windows API,但是会缺少很多接口,或者是接口无效,而MSVC编译器使用#include<window.h>可以调用全部的Windows API(等效于visual Studio调用API)。

安装前简要说明

        本文使用的是opencv官网编译好的安装程序,这个程序是在MSVC下编译的,所以QT MSVC编译器版本安装比较简单;而QT MinGW编译器版本,可以下载源码后重新编译(麻烦),或者是使用中间件接口来调用MSVC的接口(简单),本文只介绍简单的方式。

QT安装opencv环境

MSVC编译器

待安装软件

opencv安装包:opencv-4.5.2-vc14_vc15.exe   

 如果要使用其他更新的包,可以访问官网地址:https://opencv.org/releases/ 

安装操作

1、应用安装

点击安装包之后,只需要填入安装路径即可,如下图,本人安装在D:\software\opencv目录下

2、环境变量设置

安装完成之后,需要配置系统环境变量,方便QT项目引用

3、QT项目引入opencv库

以上加上环境变量包含之后,不需要重启电脑,直接创建一个MSVC编译器的QT项目,然后右键点击项目,在右键菜单中选择【添加库...】

选择外部库,进入下一步

然后填写上库文件路径和头文件目录路径,如下图填写

创建完成之后,在.pro文件中,可看到新增了如下内容

如果嫌弃这种添加方式操作步骤多,可以在opencv目录下,创建一个openvb.pri文件,把上面导入外部库生成的.pro内容剪切出来,粘贴到opencv.pri中,然后改一下路径(去掉../.../),然后在.pro文件中引入pencv.pri文件即可(以后的项目需要opencv库时,只需要引入这个文件即可)

include(D:\opencv\opencv.pri)

测试代码

#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:/123.png");namedWindow( "show", WINDOW_AUTOSIZE );imshow("show",image);
}

以上测试代码是两个编译器通用的

MinGW编译器

待安装软件

opencv安装包:opencv-4.5.2-vc14_vc15.exe     这个是必须安装的。

接口中间件:OpenCV-MinGW-Build-OpenCV-4.5.2-x64 这个一定要选择跟以上一样的4.5.2版本,可以选择其他的版本,但是两个安装包的版本一定要一样。

安装操作

1、应用安装

opencv安装包,与MSVC编译器的安装完全一样

2、接口中间件安装

也安装到D:\software\opencv目录下,方便管理

3、环境变量设置

在path中加入接口中间件的路径

D:\opencv\opencvMinGW\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\x64\mingw\bin
4、QT项目引入opencv库

这里直接加入opencv.pri文件(可以改名为opencvMinGW.pri),以下是.pri文件的内容:

# 头文件路径
OPENCV_ROOT = $$PWD/opencv/opencvMinGW/OpenCV-MinGW-Build-OpenCV-4.5.2-x64
INCLUDEPATH += $$OPENCV_ROOT/include# 库链接配置(标准-l语法代替绝对路径)
OPENCV_LIB_PATH = $$OPENCV_ROOT/x64/mingw/bin
LIBS += -L$$OPENCV_LIB_PATH \-lopencv_core452 \-lopencv_highgui452 \-lopencv_imgproc452 \-lopencv_calib3d452 \-lopencv_imgcodecs452 \-lopencv_videoio452

然后在.pro文件中引入.pri文件即可

include(D:\opencv\opencv.pri)
5、测试代码

与MSVC的测试代码完全一样。

篇尾

        之前分享的动态库编译文章中,有说明过不同qt版本编译出来的so、dll不能通用(相同的编译器也不行),何况是编译器不一样的时候,所以QT项目(MinGW编译器)引入opencv,要么重新编译,要么使用接口中间件。

http://www.lryc.cn/news/601716.html

相关文章:

  • 字节前端面试知识点总结
  • 应对反爬机制的具体方法与策略
  • 《 接口日志与异常处理统一设计:AOP与全局异常捕获》
  • Android 调试桥 (adb) 基础知识点
  • 【C 学习】02-究竟什么是C?
  • 【论文阅读】ON THE ROLE OF ATTENTION HEADS IN LARGE LANGUAGE MODEL SAFETY
  • 一文快速了解Docker和命令详解
  • 深度学习中的计算图与自动微分原理:静态图与动态图的实现差异
  • Leetcode力扣解题记录--第136题(查找单数)
  • Springboot+Layui英语单词学习系统的设计与实现
  • MyBatis Plus 分页
  • WiFi Mouse PC端 v1.7.2 官方中文版
  • 《杜甫传》读书笔记与经典摘要(三)流亡与走向人民
  • SPSC无锁环形队列技术(C++)
  • 系统整理Python的循环语句和常用方法
  • CPA青少年编程能力等级测评试卷及答案 Python编程(三级)
  • 详解力扣高频SQL50题之610. 判断三角形【简单】
  • 内存泄漏问题排查
  • idea打开后project窗口未显示项目名称的解决方案
  • 24点数学游戏(穷举法求解表达式)
  • 【计算机网络架构】网状型架构简介
  • Java学习-------序列化与反序列化
  • Windows10+WSL2+Docker相关整理
  • 2025年Agent创业实战指南:从0到1打造高增长AI智能体项目
  • ABP VNext + Elastic APM:微服务性能监控
  • Kotlin递归
  • C++算法竞赛篇(五)循环嵌套题型讲解
  • 港股历史逐笔成交与分时十档买卖盘口数据深度解析
  • 标签驱动的可信金融大模型训练全流程-Agentar-Fin-R1工程思路浅尝
  • unity开发中Hash、Queue、LinkedList简单介绍