关于MQTT协议与QT的结合【保姆级的操作手册一】

  • Post author:
  • Post category:其他


前文

1.MQTT的作用:

mqtt协议是为工作在低带宽,不可靠网络的远程传感器和控制设备通讯而设计的协议,而Socket则是为了浏览器与服务器全双工通信的一种协议。mqtt是IBM开发的一个即时通讯协议,Socket是HTML5一种新的协议。

2.MQTT的好处:

实现远程传感器和控制设备而设计的协议

3.MQTT的三种角色:

发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)

发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者

一、QT与MQTT的相结合

环境说明

Qt版本:5.14.2 Mingw32 (其他版本在编译的过程中生成的include会不同)

操作系统:win10企业版

移植过程

1、QT官方在github上提供了源代码,地址:

https://github.com/qt/qtmqtt

2、本人pc上安装的QT版本为 Qt5.14.2,固选择下载了5.14.2版本:


3、编译过程:

下载完成后,解压

用qtCreator打开 qtmqtt.pro项目文件,然后笔者选择了MinGW_32 来构建工程


注:下面引用的路径均为笔者自己电脑上的路径,请读者按照自己的路径修改


遇到问题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_32\include\ 下面创建QtMqtt目录,然后把下载下来的源码src/mqttt下面的所有.h文件拷贝到qt sdk下新创建的QtMqtt目录下

为了方便且实用,可以把整个src文件夹放置过去

4、集成

如图是编译产生的目录结构:

1 把bin目录下的Qt5Mqtt.dll 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin目录下

2 把lib 下面的libQt5Mqtt.a 拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_32\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目录下(不拷贝好像也没事)


**************************************************部署到QT的方式完成************************************

补充关于QT安装目录的相关知识


如上图所示,添加的子模块都会放在QTDIR(Qt类库文件夹)中,其中子模块关注的目录

  • bin:用于存放Qt的运行库,我们将子模块编译生成的.dll文件拷贝到该目录下;
  • include:用于存放头文件,我们将子模块的头文件拷贝到该目录下;
  • lib:用于存放静态库文件,我们将子模块编译生成的.a(mingw编译器)或.lib(msvc编译器)文件拷贝到该目录下;
  • mkspecs:该目录下有个modules文件夹,我们将子模块编译生成.pri文件拷贝到该目录下。

***********************************************************************************************************

上面除了使用手动make 的方式来进行之外,还可以使用行命令,采用命令的方式一次性完成,这种方式与安装QtXlsx的方式类似

步骤如下:

1.在QT的安装目录下创建QtMqtt目录,然后把下载下来的源码src/mqttt下面的所有.h文件拷贝到qt sdk下新创建的QtMqtt目录下 【不然又得.a 文件等编译不出来,和上面的拷贝生成QtMqtt的效果一样】

2.打开QT相关的MinGW32编译器,如图所示:

3.输入以下命令:

1】、跳转到qtmqtt-5.14.2目录下

2】、输入命令qmake qtmqtt.pro

此时生成了一个Makefile

3】、MinGW32-make install 这个命令是 个复合命令

在编译完成后,你会在QT的安装路径下再去看,会将刚才需要拷贝的文件自动复制到了相关目录下

通过官网的QT提供的文件来编译已经完成,接下来将会是测试部分



版权声明:本文为qq_42964109原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。