绪论
发现目前没有一个具体讲清楚Qt的MQTT库的导入教程。我所使用的的是Qt5.15.2。
概述
Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,一个是第三方(EMQ)开发的用于Qt调用MQTT的接口,二者使用方法大同小异,并且均提供了源码。那么,这里先来介绍第一种,如基于Qt官方提供的封装来使用MQTT。
Qt官方虽然在2017年就已经提供了对MQTT的封装,但是并没有正式加入到Qt的标准库里面,所以需要自己下载源码进行编译。
Qt官方介绍文档地址:https://doc.qt.io/QtMQTT/qtmqtt-index.html
下载
Qt 的MQTT库源码下载地址:
perl下载
注意,编译这个源码需要安装perl,否则会报错。
perl下载地址:https://www.perl.org/get.html
官网下载速度比较慢,我上传到网盘了,可以在这里下载:
链接:https://pan.baidu.com/s/1hsCGKm4wNweiRINV9lTlIQ?pwd=upcu 提取码:upcu
安装perl是一直点下一步和我接受即可。
MQTT库的编译
打开解压后的MQTT库,双击打开

选着下面的其中一个编译环境。

按照下图顺序依次选着即可

选着Release模式构建项目,在构建的文件中的lib文件下找到libQt5Qmqtt.a文件,就是所需的库文件了,(在lib文件下,还有两个文件被我删了,原因是没有用)。

部署到Qt项目
编译出来的Qt的Mqtt库,有两种方式去使用,一种是直接在项目中导入外部库和头文件;还有一种是将其以模块的形式部署到Qt的安装目录。这里介绍的是第一种方式。
在构建的文件中找到include和lib文件,后续会用到。

新建工程时,选着的编译器要与Qt的mqtt库的编译器要保持一致。

将构建的文件中的include和lib文件,拷贝到新建的工程文件下。

打开新建工程的pro文件,添加QT += network
![]()
右键项目名称,点击添加库...,选择外部库,下一步。
选择外部库,下一步。

其中库文件选择刚刚编译出来的lib文件夹下的libqmqtt.a,包含路径会自动添加,选择平台,下一步。

后面就选择完成即可,Qt 则自动将qmqtt库路径及头文件路径都添加到工程文件中。

在需要使用mqtt的类的头文件中添加qmqtt.h头文件就可以使用了。

报错

如果出现上述报错,解决方法如下:
在该文件的include文件下,把mqtt文件中的所有文件剪贴到include文件下即可。


https://gitcode.net/mirrors/emqtt/qmqtt?utm_source=csdn_github_accelerator
1090





