Qt5 使用 Qt官方Qt MQTT

qt版本:
qt 5.15.2

一.下载源代码

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

二.编译

1.进入源代码目录,双击qtmqtt.pro打开工程:
Qt5 使用 Qt官方Qt MQTT_解决方法_02
2.选择release进行编译,发现报错:
“fatal error: QtMqtt/qmqttglobal.h: No such file or directory”
解决方法如下:
在qt安装目录指定的路径下,新建QtMqtt文件夹。并且将qtmqtt源码目录中的:src/mqtt/ 目录下的所有头文件拷贝到前面新建的QtMqtt文件夹目录下面。操作完成如下图所示:
Qt5 使用 Qt官方Qt MQTT_qt_033.重新编译,发现又报如下错误
Qt5 使用 Qt官方Qt MQTT_qt_04
点进去发现错误的地方是:
Qt5 使用 Qt官方Qt MQTT_解决方法_05
再去看m_receiveAliases和m_publishAliases的定义,发现对应的类型是QList。
Qt5 使用 Qt官方Qt MQTT_c++_06
分析:QList类型是没有resize()函数的。
修改:将QList 修改为QVector即可。如下图所示:
Qt5 使用 Qt官方Qt MQTT_c++_07
4.再次编译,编译通过。
Qt5 使用 Qt官方Qt MQTT_qt_08
5.拷贝生成目录/lib 目录下的库到 qt对应的lib目录
Qt5 使用 Qt官方Qt MQTT_解决方法_09
Qt5 使用 Qt官方Qt MQTT_c++_10
6.拷贝生成目录/bin下的库到qt对应的bin目录,如下图所示:
Qt5 使用 Qt官方Qt MQTT_qt_11
Qt5 使用 Qt官方Qt MQTT_c++_12
7.最后再拷贝模块配置文件到Qt安装目录中,如下图所示:
Qt5 使用 Qt官方Qt MQTT_github_13
Qt5 使用 Qt官方Qt MQTT_c++_14
8.大功告成。可以使用QMqtt先关的类了。

三.使用QMQtt

  1. .pro文件中增加 :
    QT += mqtt
    2.包含头文件 #include <QtMqtt/qmqttclient.h>
  2. 创建客户端Qt5 使用 Qt官方Qt MQTT_文件拷贝_15