基于QT5.14.2的MQTT通信

news2024/11/29 0:37:23

一、概述

默认的Qt环境是不能使用MQTT的,但Qt官方提供了基于MQTT的封装,需要通过源码进行编译。
可以在下面的链接中获取到:
https://github.com/qt/qtmqtt
在dev分支中可以选择MQTT版本,选择最新的下载到本地。注意一定要选择对应自己QT版本的MQTT源码 ,我使用的是QT5.14.2,所以MQTT的版本也得是5.14.2.

二、配置环境

1、编译源码库文件

下载下来的是一个Qt项目,在Qt Creator中打开.pro文件,用你所需要的编译器(VS,MinGW…),开始编译。

之后报错如下:

qmqttglobal.h: No such file or directory

解决方法: 在qt安装目录指定编译器的include路径下,新建QtMqtt文件夹。
并且将qtmqtt源码目录中的:src/mqtt/ 目录下的所有头文件拷贝到前面新建的QtMqtt文件夹目录下面。重新编译即可。

完成编译后,可以在你的编译路径的/bin目录中得到所需的动态链接库文件Qt5Mqtt.dll和Qt5Mqttd.dll。前者是release版库,后者是debug版。

2、配置永久项目环境

为了实现一次配置,所有项目可用的目的,我们可以直接将MQTT配置到系统的Qt环境中去。

(1)将编译出来的bin目录中的库文件拷贝到QT安装目录中去

在这里插入图片描述
将以上文件拷贝到以下目录中
在这里插入图片描述

(2)然后,将源码编译生成目录下的静态链接库相关文件拷贝到Qt安装目录的/lib下,

依次为Qt5Mqtt.lib(.a) Qt5Mqtt.prl Qt5mqttd.lib(.a) Qt5Mqttd.prl。
在这里插入图片描述

(3)最后再拷贝模块配置文件到Qt安装目录中。

在这里插入图片描述
将以上两个文件夹拷贝到以下目录中
在这里插入图片描述

这样MQTT就已经配置到我们本地的Qt环境中了。后续所有使用此Qt环境的项目都可以直接使用MQTT了。

(4)使用方法

使用MQTT时,首先要在.pro中添加模块:

QT += mqtt

在使用前引入包:备注:头文件的名字一定要对上,看了好多资料发现名字有的是大写的

#include <QtMqtt/qmqttclient.h>

编写代码可以参考Qt官方的MQTT说明文档:
https://doc.qt.io/qt-6/qtmqtt-index.html

三、现象

在这里插入图片描述

四、参考资料

Qt5.15.2配置qmqtt
编译一个QT MQTT Client
qt 5.14.1 mqtt正常编译分享
Unknown module(s) in QT: mqtt
一文搞懂Qt-MQTT开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Video Speed Controller谷歌视频加速插件——16倍速

文章目录前言最简单的版本一、如果是简单的话 可以Microsoft Edge使用二、简单的版本 火狐的话使用Global Speed插件三、由于视频受限以上的方法行不通 还是谷歌好用前言 主要是网课刷的时候 太慢所以找到了刷视频的方法 由于前几个的权限受限制 所以还是选用了谷歌浏览器的 V…

Ambire Wallet 2023 年路线图

在一个充满活力的建设者空间&#xff0c;但在一个努力的熊市中&#xff0c;作为加密技术创新者&#xff0c;我们必须保持适应&#xff0c;同时继续通过做好工作来领导&#xff1a;建立愿景。 已经建设了很多&#xff0c;也还有很多要做的&#xff1a;Ambire 发布了今年的雷达图…

炎症回路和肠道微生物

✦ ✦ ✦ 炎症&#xff1a;就是平时人们所说的“发炎”&#xff0c;是机体对于刺激的一种防御反应。炎症&#xff0c;可以是感染引起的感染性炎症&#xff0c;也可以不是由于感染引起的非感染性炎症。 炎症在在各种症状中起重要作用&#xff0c;如脑雾、焦虑和抑郁、腹胀、各种…

数据工程师需要具备哪些技能?

成为数据工程师需要具备哪些技能&#xff1f;数据工程工作存在于各个行业&#xff0c;在银行业、医疗保健业、大型科技企业、初创企业和其他行业找到工作机会。许多职位描述要求数据工程师、拥有数学或工程学位&#xff0c;但如果有合适的经验学位往往没那么重要。 大数据开发…

linux高级命令之用户组相关操作

用户组相关操作学习目标能够知道创建用户组的命令1. 创建用户组命令说明groupadd创建(添加)用户组创建用户组效果图:2. 创建用户并指定用户组创建用户并指定用户组效果图:3. 修改用户组修改用户组效果图:4. 删除用户组命令说明groupdel删除用户组删除用户组效果图:说明:如果用户…

Git-学习记录

文章目录1. Git-基础1.1 获取 Git 仓库1.2 记录每次更新到仓库1.3 远程仓库的使用2. Git-分支2.1 Git 分支的新建与合并2.2 Git 分支的管理1. Git-基础 1.1 获取 Git 仓库 通常有两种获取 Git 项目仓库的方式&#xff1a; 将尚未进行版本控制的本地目录转换为 Git 仓库&…

一文解决从进程栈内存底层原理到Segmentation fault报错

栈是编程中使用内存最简单的方式。例如&#xff0c;下面的简单代码中的局部变量 n 就是在堆栈中分配内存的。 #include <stdio.h> void main() {int n 0;printf("0x%x\n",&v); } 那么我有几个问题想问问大家&#xff0c;看看大家对于堆栈内存是否真的了…

maven deploy上传本地jar至私服

1.场景 首先目前依赖包的管理大多数是maven&#xff0c;其次当使用到第三方的包的时候&#xff0c;官方的仓库或者aliyun的maven都是没有这个包的。那么&#xff0c;为了方便我们使用 我们需要将本地的这个jar上传到 公司内部的私服去&#xff0c;以便大家使用 2. 上操作 我…

VS Code 用作嵌入式开发编辑器

使用 Keil MDK 进行嵌入式开发时&#xff0c;Keil 的编辑器相对于主流编辑器而言有些不方便&#xff0c;比如缺少暗色主题、缺少智能悬停感知&#xff08;鼠标停在一个宏上&#xff0c;能自动展开最终的宏结果&#xff09;、代码补全不好用等等&#xff0c;所以推荐使用 VS Cod…

【Java技术】基于Http的文件断点续传实现

1.断点续传的介绍 客户端软件断点续传指的是在下载或上传时&#xff0c;将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分&#xff0c;每一个部分采用一个线程进行上传或下载&#xff0c;如果碰到网络故障&#xff0c;可以从已经上传或下载的部分开始继续上传下载…

电子科技大学操作系统期末复习笔记(二):进程与并发控制

目录 前言 进程管理 进程基本知识 程序的顺序执行 前趋图 程序的并发执行 并发程序 进程的定义和特征 进程的特征和状态 操作系统内核 定义 功能 原语 原子操作的实现 操作系统控制结构 进程控制块PCB 进程组织&#xff08;进程树&#xff09; 进程的创建 …

3DMAX高级弯曲插件使用教程

3dMax高级弯曲插件是对3dmax原生“弯曲&#xff08;Bend&#xff09;”修改器的一个增强&#xff0c;给用户更多控制弯曲修改器的参数设置&#xff0c;它让用户输入宽度&#xff0c;插件脚本将移动中心以获得正确的宽度。 主要特性&#xff1a; - 使用智能捕捉捕捉到自定义网格…

静态库和动态库的制作

一、什么叫做库&#xff1a; 库&#xff1a;二进制的程序&#xff0c;能被操作系统载入内存中执行 二、Linux下的库有两种&#xff1a;静态库和共享库(动态库)&#xff0c;二者的不同点在于代码载入的时刻不同。 A、静态库在程序编译的时候并会被连接到目标代码中&#xff0c;程…

SSM项目-商城后台管理系统

SSM项目-商城后台管理系统开发说明开发环境项目界面演示项目功能具体的技术指标开发过程1、搭建SSM框架1.1、建库建表1.2、新建Maven工程1.3、配置pom.xml1.4、目录结构1.5、jdbc.properties1.6、mybatis-config.xml1.7 两个Spring的配置文件applicationContext_dao.xmlapplica…

数据库(三)

第三章 MySQL库表操作 3.1 SQL语句基础 3.1.1 SQL简介 SQL&#xff1a;结构化查询语言(Structured Query Language)&#xff0c;在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句&#xff0c;程序员和数据库管理员可以完成如下的任务。 改变数据…

【图解数据结构与算法】数据结构与算法知识点整理 Data Structures and Algorithms

程序数据结构算法 数据结构是可以存储和组织数据的命名位置。 算法是用于解决特定问题的一组步骤。 数据结构是指&#xff1a;一种数据组织、管理和存储的格式&#xff0c;它可以帮助我们实现对数据高效的访问和修改。 数据结构 数据元素 元素之间的结构。 如果说数据结…

什么人合适学习Python

发了几天的Python基础&#xff0c;也认识了一些朋友&#xff0c;忽然有人问起&#xff0c;说为啥学Python&#xff0c;或者说啥人学习Python&#xff0c;作为一个教龄8年从Python一线讲师到Python教学主管的我和大家分享一下个人的看法&#xff0c;还是提前说一下&#xff0c;个…

winapi模拟鼠标按住左键拖动

继前文《windows下通过uiAutomation技术获取ui元素》介绍获取ui元素信息后&#xff0c;还需要对信息进行修改&#xff0c;但是 uiAutomation 技术并未提供可修改的 api&#xff0c;只能另辟他径看看了。 以 camera raw 为例&#xff0c;已知的是可将鼠标放在指定区域位置&#…

电力国家(行业)标准目录

1、3&#xff5e;63kV交流高压负荷开关 GB 3804-90 代替 GB 3804-882、电气装置安装工程35kV及以下架空电力线路施工及验收规范Code for construction and acceptance of 35kVand umder over head power levels electricequipment installation engineeringGB50173—923、带电作…

论文文献引用规范和标准(国标GBT7714)@endnote国标样式@citation交叉引用编号

文章目录论文文献引用规范和标准&#xff08;国标GBT7714&#xff09;国标GBT7714-2015endnote stylerefs简述国标GBT7714条目的组织格式&#x1f388;Noteword中的文献交叉引用超链接[编号]&#x1f388;正则高级搜索批量选中引用序号上标调整更新引用编号项段落内容对齐居中&…