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

前文

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版本:

关于MQTT协议与QT的结合【保姆级的操作手册一】_第1张图片3、编译过程:

下载完成后,解压

关于MQTT协议与QT的结合【保姆级的操作手册一】_第2张图片

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

关于MQTT协议与QT的结合【保姆级的操作手册一】_第3张图片

 注:下面引用的路径均为笔者自己电脑上的路径,请读者按照自己的路径修改
遇到问题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目录下 

关于MQTT协议与QT的结合【保姆级的操作手册一】_第4张图片

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

关于MQTT协议与QT的结合【保姆级的操作手册一】_第5张图片

 4、集成

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

关于MQTT协议与QT的结合【保姆级的操作手册一】_第6张图片

 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安装目录的相关知识

关于MQTT协议与QT的结合【保姆级的操作手册一】_第7张图片

关于MQTT协议与QT的结合【保姆级的操作手册一】_第8张图片

 

如上图所示,添加的子模块都会放在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编译器,如图所示:

关于MQTT协议与QT的结合【保姆级的操作手册一】_第9张图片

         3.输入以下命令:        

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

关于MQTT协议与QT的结合【保姆级的操作手册一】_第10张图片

         2】、输入命令qmake qtmqtt.pro

关于MQTT协议与QT的结合【保姆级的操作手册一】_第11张图片

 此时生成了一个Makefile

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

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

关于MQTT协议与QT的结合【保姆级的操作手册一】_第12张图片

 关于MQTT协议与QT的结合【保姆级的操作手册一】_第13张图片

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

你可能感兴趣的:(QT开发,物联网,iot)