概述
准备工作
下载安装QT
如果需要重新安装QT,在安装过程中,要把Perl给选中,如果不选中,编译时会报错。
下载Qt MQTT模块
点此下载
下载时,注意选择与所安装QT版本一致的分支。
编译Qt MQTT模块
解压
将下载下来的qtmqtt压缩包解压到合法路径下
复制相关头文件
1)在QT安装目录下,选择对应的QT版本和常用的编译器,笔者常用 MSVC 2017 32-bit,选择进入此编译版本文件夹并进入include文件夹,在此目录下新建QtMqtt文件夹。
2)将**.srcmqtt**文件夹中的所有.h的文件全部复制到(1)中的QtMqtt文件夹内。如果不复制可能会报错。报错如下:error: QtMqtt/qmqttglobal.h: No such file or directory
打开工程
直接双击解压文件夹下的qtmqtt.pro文件打开,会出现个弹窗让选择编译环境,选择常用的即可。
编译工程
选择Release版本,然后点击编译(也就是点击最下面的小锤子)。等待编译完成。
完成后在同级目录下生成.build-qtmqtt-Desktop_Qt_5_12_10_MSVC2017_32bit-Release
部署Qt MQTT模块
编译出来的Qt Mqtt库,要使用它有三种方式,第一种是直接将源码代入工程,第二种是直接在项目中导入外部库和头文件,还有一种是将其以模块的形式部署到Qt的安装目录,其中第三种的好处就是,只需要做一次操作,以后需要再用Mqtt库就可以直接调用了,不需要每次都导入外部库。
头文件(include)
1.在编译时,我们已经复制过,此处再次复制编译后目录中的include文件夹内QtMqtt文件夹到编译器版本下的include文件夹内,主要是有个QtMqttDepends文件;
2.回到编译源码中,复制qtmqttsrcmqtt目录下的所有".h
“文件,不包含结尾为”_p.h
“头文件,到QtQt5.12.105.12.10目录下对应的编译器版本中的include目录下的QtMqtt文件夹中,提示已经存在选择覆盖.
3.回到编译源码中,复制qtmqttsrcmqtt目录下的所有”_p.h
"文件,到QtQt5.12.105.12.10目录下对应的编译器版本中的include目录下的QtMqtt5.12.10QtMqttprivate文件夹中,提示已经存在选择覆盖.
库文件(lib)
将编译后的文件夹下的lib文件和prl文件复制到常用编译环境下的lib文件夹下。
复制lib文件夹中的cmakeQt5Mqtt整个目录到常用编译环境下的libcmake目录中
动态库文件/运行库文件(dll)
将mqtt编译出来的bin目录下的2个dll拷贝到常用编译环境下的bin文件夹下。
(注意:bin下的2个dll其实与lib下的2个dll是一模一样的)
模块配置文件
将mqtt编译出来的mkspecsmodules-inst下的pri文件拷贝到安装目录常用编译环境下的mkspecs/modules中
引用QtMQTT
经过以上配置,后续开发使用mqtt模块只需完成以下两个步骤
引入模块:
QT += mqtt
包含头文件
#include <QtMqtt/QtMqtt>
使用官方DEMO
为了方便演示,我们直接使用Qt Mqtt源码中自带的simpleclient示例来编译运行。
这个示例Qt官方有详细介绍的,https://doc.qt.io/QtMQTT/qtmqtt-simpleclient-example.html
将该示例打开,有个地方需要改一下,打开Pro文件
将以上两行注释掉,要不然会有依赖,无法独立运行。
编译无错,直接运行。
尝试通信
根据官方文档,选择broker.hivemq.com
进行测试连接。
后续使用
后续使用可参考文档,使用 QMqttClient类进行
最后
以上就是火星上狗为你收集整理的QT学习笔记-编译部署QtMQTT准备工作编译Qt MQTT模块部署Qt MQTT模块引用QtMQTT的全部内容,希望文章能够帮你解决QT学习笔记-编译部署QtMQTT准备工作编译Qt MQTT模块部署Qt MQTT模块引用QtMQTT所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复