当前位置: 首页 > news >正文

QT MQTT (二)编译与集成

一、QT MQTT

提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议,用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议,因此被广泛应用于各种分布式系统和物联网解决方案中。

Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,一个是第三方(EMQ)开发的用于Qt调用MQTT的接口,二者使用方法大同小异,并且均提供了源码。那么,这里先来介绍第一种,如基于Qt官方提供的封装来使用MQTT。

Qt官方虽然在2017年就已经提供了对MQTT的封装,但是并没有正式加入到Qt的标准库里面,所以需要自己下载源码进行编译。

Qt官方介绍文档地址:https://doc.qt.io/QtMQTT/qtmqtt-index.html

二、如何使用?

1.下载与编译

Qt官方在github上提供了源代码,地址:https://github.com/qt/qtmqtt
本人pc上安装的QT版本为 Qt5.14.2,固选择下载了5.14.2版本:
在这里插入图片描述

2.编译

下载完成后,解压
在这里插入图片描述
用qtCreator打开 qtmqtt.pro项目文件,
然后笔者选择了MinGW_64 来构建工程
在这里插入图片描述
注:下面引用的路径均为笔者自己电脑上的路径,请读者按照自己的路径修改
遇到问题1 :

qmqttauthenticationproperties.h:33: error: C1083: 无法打开包括文件: “QtMqtt/qmqttglobal.h”: No such file or directory

解决:
在qt sdk路径:C:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\ 下面创建QtMqtt目录,然后把下载下来的源码src/mqttt下面的所有.h文件拷贝到qt sdk下新创建的QtMqtt目录下

在这里插入图片描述
在这里插入图片描述

2.集成

如图是编译产生的目录结构:
在这里插入图片描述
1 把bin目录下的Qt5Mqtt.dll\Qt5Mqttd.dll 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin目录下
2 把lib 下面的libQt5Mqtt.a\libQt5Mqttd.a 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib目录下
3 把mkspecs\modules-inst下面的qt_lib_mqtt.pri 和 qt_lib_mqtt_private.pri拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\modules目录下(不拷贝好像也没事)

3.运行demo

随便测试个小demo
笔者用的是example下的simpleclient,构建报错:error: ‘QMqttClient’ file not found

在这里插入图片描述
找不到QMqttClient,改成下面即可。然后运行

//#include <QMqttClient>
#include <QtMqtt/qmqttclient.h>

在这里插入图片描述

http://www.lryc.cn/news/382695.html

相关文章:

  • (上位机APP开发)调用华为云属性修改API接口修改设备属性
  • 爆火的儿童绘本如何用AI制作?一文解锁从制作到变现的全流程!
  • Go interface{}类型转换
  • 利用opencv自带的Haar级联分类器模型
  • 国产USB音频转换芯片CL7016C 支持国美标线控USB Type-C音频编解码器
  • 【linux网络(六)】IP协议详解
  • CesiumJS【Basic】- #012添加点线面(entity方式)
  • 【Redis】内存回收和内存淘汰机制
  • PyTorch实战:借助torchviz可视化计算图与梯度传递
  • 【软件测试】软件测试入门
  • Windows操作防火墙命令
  • 二维数组的知识
  • HR3.0时代,人力资本效能如何进化?| 易搭云DHR
  • R语言做图
  • 跟着我一步两步三步,用开源方式将AI带入企业
  • 天途重磅推出无人机教管平台3.1版及飞课APP
  • 虚幻引擎 Gerstner Waves -GPU Gems 从物理模型中实现有效的水体模拟
  • Labview_网络流
  • 让生产管理变简单
  • MySQL与SQLite的区别
  • Hi3861 OpenHarmony嵌入式应用入门--LiteOS Event
  • Centos+Jenkins+Maven+Git 将生成的JAR部署到Jenkins服务器上
  • 性能评测系列(PT-010):Spring Boot + MySQL,高并发insert
  • 网站改成HTTPS方法
  • 智慧社区:居民幸福生活的保底线,价值非常大。
  • 《昇思25天学习打卡营第1天|NapKinG》
  • Java项目毕业设计:基于springboot+vue的幼儿园管理系统
  • CPU1511作为CPU1513的智能IO设备
  • docker 安装与常用指令
  • 如何将 gz 文件通过 local data 导入 OceanBase?