当前位置: 首页>编程语言>正文

MQTT仓库 mqtt协议库

参考文档

前言

mqtt官方库不在Qt中,而是需要另外下载源码然后编译生成库,至于源码网址我没有从官方网站找到,前辈们说了下面两个网址。
github地址:

https://github.com/emqtt/qmqtt https://github.com/qt/qtmqtt

我使用的是下面这个,据说是官方的:

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_MQTT仓库,第1张

step1 编译

下载后,打开最外层的qtmqtt.pro项目文件,构建中会包文件找不到,如 <QtMqtt/qmqttglobal.h>等文件,
主要原件是编译器是按照在Qt安装目录下搜索的,但我们文件是我们自己随意放的目录下的 src\mqtt 路径下。

因此,在Qt安裝路徑的頭文件目錄下,新建QtMqtt目錄,

C:\Qt\Qt5.11.3\5.11.3\mingw53_32\include\QtMqtt

将src/mqtt目录的所有头文件全部拷贝到QtMqtt目录下。

step2 精简有用的库文件

我们可以在项目工程目录下看到生成的库文件和头文件,但需要修改一些。

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_库文件_02,第2张

工程目录下的include文件夹不是真正的头文件,而是一些说明内容

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_头文件_03,第3张

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_库文件_04,第4张

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_Qt_05,第5张

打开include中任意头文件发现,这里都是执行源码中的同名文件的,这肯定不行,真正使用库的时候是没有源码只有库的,所以需要把include目录下所有的.h头文件都替换成源码目录中的同名文件。

这操作这是。。。制作库还能去引用依赖源码路径和内容?为啥不直接拷贝过来?还需要手动去拷贝下。

至此,lib、include就是我们需要的库文件所有的内容了。

step3 将库导入到工程

创建一个新工程,软件把mqtt库文件拷贝到新工程目录

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_库文件_06,第6张

将库文件添加到新工程中,

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_Qt_07,第7张

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_Qt_08,第8张

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_库文件_09,第9张

此时该工程就可以使用mqtt库了。

另外还有一种模块化部署的说法
红胖子大侠说的很清楚

大概需要五个步骤:
1、将源码中的头文件挑出来,放到安装目录,注意是独立新建一个QtMqtt的文件夹

C:\Qt\Qt5.11.3\5.11.3\mingw53_32\include\QtMqtt

2、将库源码生成的的libD:\qt\test\build-qtmqtt-Desktop_Qt_5_11_3_MinGW_32bit-Release\lib目录下的文件全部拷到C:\Qt\Qt5.11.3\5.11.3\mingw53_32\lib

3、将动态库拷到bin目录拷到 C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin目录下

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_MQTT仓库_10,第10张

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_MQTT仓库_11,第11张

4、模块配置文件

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_头文件_12,第12张

上图文件拷贝到下图的位置。

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_MQTT仓库_13,第13张

5、头文件别名文件的创建,这个也是我比较困惑的地方,linux的.so库的路径引用、头文件别名也是自动生成的,这个成了手动的,不敢相信

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_Qt_14,第14张

在上图安装目录的头文件目录创建一个QtMqtt的文件,注意是没有后缀的,在在这个文件中写一句话,后面包含头文件就可以直接是包含这个文件而不用包含其他的文件。

MQTT仓库 mqtt协议库,MQTT仓库 mqtt协议库_库文件_15,第15张



https://www.xamrdz.com/lan/5a91962462.html

相关文章: