栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

基于Qt mqtt库的客户端实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Qt mqtt库的客户端实现

Qt开发MQTT程序有两种方式;

  • Qt官方已经提供了基于MQTT的封装,但是并没有正式加入到Qt的标准库中,需要自己进行编译添加;
  • 基于第三方EMQ开发的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

编译QtMqtt库

D:QtQt5.14.25.14.2mingw73_64include(安装目录上和帮助里面看到的版本不一致,我不知道为什么)

在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的安装路径下的mkspecsmodules路径中即可 

第二个报错息如下:

QMqttClient does not exist

原因是头文件无法找到,做出如下修改;

//#include 
#include 

再次编译运行,程序可以正常运行。

简单总结一下:

  • 库版本和位置是否放置在相应编译工具链目录下。
  • 头文件是否对应到类名文件,并放置到编译工具链目录下。
  • modules-inst下的pri文件是否放置到编译工具链目录的相应目录下, QT +=mqtt 能否正常工作都依赖目录里的pri文件。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号