我是靠谱客的博主 火星上狗,最近开发中收集的这篇文章主要介绍QT学习笔记-编译部署QtMQTT准备工作编译Qt MQTT模块部署Qt MQTT模块引用QtMQTT,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

准备工作

下载安装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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部