QT 部署官方MQTT模块
在Qt Creator中,默认是没有部署Mqtt模块的,在使用QT编程之前,先把mqtt 模块部署到开发环境当中。参考博文:Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建_长沙红胖子-CSDN博客
下载
Qt官方在github上提供了源代码,地址:https://github.com/qt/qtmqtt.选择对应的版本下载
-
编译源码
打开源码文件,双击.pro打开工程文件,选择release编译。
编译这个源码需要安装perl,否则会报错:perl 不是内部或外部命令,也不是可运行的程序。
perl下载地址:https://www.perl.org/get.html
安装完Perl后会自动写入环境变量, 这时候再次编译(Release模式)QtMqtt源码,编译完成后得到以下文件
编译遇到的错误:
1、编译过程会出现没有没有找到qtmqtt相关头文件的情况,这是没有找到qtmqtt的相关头文件:
/home/macian/Project/mqtt/qtmqtt-5.12.7/src/mqtt/qmqttauthenticationproperties.h:33: error: QtMqtt/qmqttglobal.h: No such file or directory
2、在使用arm-hisiv300-linux-gcc交叉编译qt5 ,qmake安装目录的include中创建QtMqtt文件夹
sudo mkdir QtMqtt
3、把源码中的.h头文件拷贝到文件夹中
sudo cp /home/macian/Project/mqtt/qtmqtt-5.12.7/src/mqtt/*.h QtMqtt/
4、ls查看拷贝结果如下
如果使用版本不一致,可能由于版本过高,或者与ubuntu版本不兼容原因可能会出现以下错误。
- 错误一:
重新构建,仍然报错缺少 QtMqtt/QMqttClient等头文件,将报错的工程头文件替换 - 解决方法:
将
#include <QtMqtt/QMqttClient>
改成
#include <QtMqtt/qmqttclient.h>
将
#include <QtMqtt/QMqttSubscription>
改成
#include <QtMqtt/qmqttsubscription.h>
将
#include <QMqttTopicName>
改成
#include <QtMqtt/qmqtttopicname.h>
将
#include <QtMqtt/QMqttMessage>
改成
#include <QtMqtt/qmqttmessage.h>
错误参考链接---树莓派上用QT搭建MQTT环境教程_51CTO博客_树莓派mqtt
编译后工程搭建参考---MQTT设计与实现_mqtt实现-CSDN博客