Qt开发MQTT程序有两种方式;
本文主要介绍第一种方式,即使用Qt官方的MQTT封装库,我们将编译MQTT库,并测试一个官方的Demo。
下载地址
Qt已经在GitHub上托管了相应的MQTT库的代码,地址:https://github.com/qt/qtmqtt

这个库是基于MQTT V3.1和V3.1.1实现的,这里要注意协议版本。

如上图所示,这里有很多分支;
测试环境
Win10+QtCreator + MinGW-W64
QT版本:Qt5.14.01
MQTT库版本:5.14.02
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\include(安装目录上和帮助里面看到的版本不一致,我不知道为什么)
在Qt的安装目录下新建QtMqtt文件夹;

然后将qtmqtt-5.14.02路径下的文件复制到新建的路径下;

具体的实际路径要根据自己的安装情况为主。
这时候我们重新回到qtmqtt-5.14.02路径下,打开qtmqtt.pro,就可以进行编译了;

这里可以编译成Debug和Release模式,编译成功之后就可以找到 Qt5Mqtt.dll
复制到bin目录下

复制lib下的文件到安装目录lib下


这时候,我们可以打开simple mqtt client项目进行测试了,路径如下所示;

这时候已经可以进行编译了,但是会发现有还两个报错情况:
第一个报错信息如下:
Unknown module(s) in QT: mqtt
无法识别mqtt模块;
解决方案如下:

将qt_lib_mqtt.pri文件和qt_lib_mqtt_private.pri复制到Qt的安装路径下的mkspecs\modules路径中即可

第二个报错息如下:
QMqttClient does not exist
原因是头文件无法找到,做出如下修改;
- //#include <QMqttClient>
- #include <QtMqtt/qmqttclient.h>
再次编译运行,程序可以正常运行。
简单总结一下: