目录

一.本文介绍

二.关于MQTT概述

三.移植qt的MQTT库

1.下载qt-MQTT的源码 

2.打开工程文件和编译

 3.移植库文件配置永久编译环境

 4.使用方法

四.代码编写

一.本文介绍

如题,QT5使用MQTT服务器需要移植MQTT库,这个程序同时写了两个数据库用来存储和查询学生和图书的信息,稍加修改和增添功能可与嵌入式下位机端构成完整的图书管理系统。

作为一个物联网项目上位机工程模板,可自行搭建emqx服务器,与stm32+esp01联动,可参考我之前文章。

我这里使用的是QT5.14.1,当然别的版本也可以,但是需要重新编译移植qt-MQTT库。

话不多说直接上文字!

二.关于MQTT概述

采纳这篇文章:MQTT协议,终于有人讲清楚了

MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。它是一个C/S架构的消息发布与订阅的传输协议

三.移植qt的MQTT库

默认的QT是没有mqtt库的,但是QT官方提供了mqtt的源码,我们通过编译出头文件并移植到自己的编译器库目录下以使用。

1.下载qt-MQTT的源码 

可以在此处下载qt-MQTT源码

在分支中选择需要使用的MQTT版本,并且下载到本地。

注意一定要选择对应自己QT版本的MQTT源码 ,由于我是5.14.1版本,所以这里下载5.14.1版本的源码。

        

 

2.打开工程文件和编译

下载到本地之后,在Qt Creator中打开这个项目的.pro文件,用你当前的编译器(一般都是MinGW)编译一下。

 编译后会报错找不到头文件qmqttxxxxx.h: No such file or directory

 这时候我们去目录指定编译器的include路径下,新建QtMqtt文件夹。然后将qt-MQTT源码中的src/mqtt/ 目录下的所有头文件拷贝到前面新建的QtMqtt文件夹目录下面后重新编译。

 

编译完成之后,在编译生成文件路径的/bin目录中得到所需的动态链接库文件Qt5Mqtt.dll和Qt5Mqttd.dll。Debug版本目录中是Qt5Mqtt.dll,Release版本目录中是Qt5Mqttd.dll

 3.移植库文件配置永久编译环境

 上刚刚编译出来的两个dll库文件拷贝到QT编译器的目录中,由于我使用的MinGW_64编译器,所以我将其拷贝到QT\5.14.1\mingw73_64\bin 目录下。

然后将编译生成文件路径下的静态链接库相关文件拷贝到Qt安装目录的/lib下。

最后再拷贝编译生成文件路径下mkspecs/两个文件夹到Qt安装目录中

 4.使用方法

和常规库一样,在pro文件中添加 QT    +=mqtt,然后include所使用的头文件即可。

四.代码编写

这里我直接参考的是刚刚下载源码中的一个客户端的例程。

 数据库使用的Sqlite,程序可做一个物联网工程的上位机模板使用,直接上传了。

五.工程文件下载

工程下载链接

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐