本贴记录在ubuntu20.04环境下搭建qtmqtt服务,主要是使用qt官网提供的mqtt模块来编译生成。

编译过程中程序报错记录如下:

1、Unknown module(s) in QT: mqtt

2、++: error: /opt/Qt/6.6.3/gcc_64/lib/libQt6Mqtt.so: No such file or directory

解决方法见下方。

qtmqtt的官网如下:qt/qtmqtt: Qt Module to implement MQTT protocol version 3.1 and 3.1.1 http://mqtt.org/ (github.com)

需要注意的是自己的QT Creator版本为多少就下载对应的版本号即可,我使用的qt版本是6.6.3.

我在ubuntu环境下是使用git工具下载源码的,命令如下:

git clone https://github.com/qt/qtmqtt -b 6.6.3

下载完成后,打开项目是这样的

在qt creator中使用红色箭头cmake来打开整个项目。然后点击项目编译按钮用于编译生成QtMqtt库,和一些必要文件。

编译完成后,会在项目的目录中生成Build文件,并找到我们需要的QtMqtt库文件,如下图:

并使用linux中的mv命令来移动文件到QT的工程库中去,qt一般都安装在opt文件路径下,如红线所示:

这个时候还是编译不成功的,如果编译mqtt client项目,会出现++: error: /opt/Qt/6.6.3/gcc_64/lib/libQt6Mqtt.so: No such file or directory这个报错,这可以很明显看出是缺少libQt6Mqtt.so文件,我们只需要将这个文件复制到QT的工程库中即可,方法如下:

在mqtt编译输出的目录中找到目录:mkspecs\modules,并复制两个pri文件到目录/opt/Qt/6.6.3/gcc_64/mkspecs/modules。同时将libQt6Mqtt.so移动到工程库中,如下图所示:

将所示文件移动到/opt/Qt/6.6.3/gcc_64/lib这个目录中。

做完上述步骤后,qtmqtt中的examples项目就可以运行成功了。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐