QT MQTT (二)编译与集成

一、QT MQTT

提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议,用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议,因此被广泛应用于各种分布式系统和物联网解决方案中。

Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,一个是第三方(EMQ)开发的用于Qt调用MQTT的接口,二者使用方法大同小异,并且均提供了源码。那么,这里先来介绍第一种,如基于Qt官方提供的封装来使用MQTT。

Qt官方虽然在2017年就已经提供了对MQTT的封装,但是并没有正式加入到Qt的标准库里面,所以需要自己下载源码进行编译。

Qt官方介绍文档地址:https://doc.qt.io/QtMQTT/qtmqtt-index.html

二、如何使用?

1.下载与编译

Qt官方在github上提供了源代码,地址:https://github.com/qt/qtmqtt

本人pc上安装的QT版本为 Qt5.14.2,固选择下载了5.14.2版本:

2.编译

下载完成后,解压

用qtCreator打开 qtmqtt.pro项目文件,

然后笔者选择了MinGW_64 来构建工程

注:下面引用的路径均为笔者自己电脑上的路径,请读者按照自己的路径修改

遇到问题1 :

qmqttauthenticationproperties.h:33: error: C1083: 无法打开包括文件: "QtMqtt/qmqttglobal.h": No such file or directory

解决:

在qt sdk路径:C:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\ 下面创建QtMqtt目录,然后把下载下来的源码src/mqttt下面的所有.h文件拷贝到qt sdk下新创建的QtMqtt目录下


2.集成

如图是编译产生的目录结构:

1 把bin目录下的Qt5Mqtt.dll\Qt5Mqttd.dll 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin目录下

2 把lib 下面的libQt5Mqtt.a\libQt5Mqttd.a 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib目录下

3 把mkspecs\modules-inst下面的qt_lib_mqtt.pri 和 qt_lib_mqtt_private.pri拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\modules目录下(不拷贝好像也没事)

3.运行demo

随便测试个小demo

笔者用的是example下的simpleclient,构建报错:error: 'QMqttClient' file not found

找不到QMqttClient,改成下面即可。然后运行

复制代码
//#include <QMqttClient>
#include <QtMqtt/qmqttclient.h>
相关推荐
橙橙笔记18 分钟前
QT的安装
开发语言·qt·安装·软件
格林威39 分钟前
C#图像像素放大:邻域平均、双线性插值实现像素放大的C#实现代码
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
兔兔兔兔11 小时前
记录C++ 8
开发语言·c++
名字还没想好☜1 小时前
Go 1.23 range-over-func 迭代器实战:自定义可迭代类型、提前退出与惰性求值
开发语言·后端·golang·go·迭代器
喵同志不止步于码农2 小时前
Java Caffeine 快速入门
java·开发语言·后端·并发·缓存一致性
2kπ2 小时前
QT开发笔记
开发语言·笔记·qt
青 春 记 忆2 小时前
零基础入门Python15|关联、聚合、索引与事务:订单数据库
开发语言·python·后端开发
江屿风2 小时前
【STM32基础篇】【嵌入式生态问题及历史追溯】流食般投喂
大数据·开发语言·人工智能·笔记·stm32·嵌入式硬件
charlie1145141913 小时前
深探std::vector:三指针、扩容与迭代器失效
开发语言·c++·开源项目
asyxchenchong8883 小时前
R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用
开发语言·r语言