当我在qt项目中输入"QT += mqtt"时并且选择构建kits为X86_64版本时显示无法找到mqtt模块
但是当我将构建kits改为arm版本之后却能正常构建。
后面发现发生这种情况的原因可能是缺少 x86_64 架构下的 MQTT 模块,并且添加了arm架构的MQTT模块,通过检查"~/.bashrc"文件可以印证。
其中只设置了arm环境下的QT环境变量。并且在arm Qt的路径中可以找到mqtt模块的目录。
而在X86_64 Qt的安装路径中找不到mqtt模块的目录,说明需要在X86_64 Qt中安装mqtt模块。
编译和安装 MQTT 模块
首先确保在 x86_64 架构下正确编译和安装了 MQTT 模块。
cd ~/Qt5.12.9/5.12.9/gcc_64/include //通过终端指令进入到X86_64 Qt的include目录中
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999//可以通过增加 git 的超时时间来避免下载超时:
git clone https://code.qt.io/qt/qtmqtt.git//从 Qt 的官方 Git 仓库中克隆 qtmqtt 模块的源码:
cd qtmqtt
git checkout 5.12//检查并切换到与您的 Qt 版本匹配的分支,例如 5.12:
/~/Qt5.12.9/5.12.9/gcc_64/bin/qmake//使用 qmake 和 make 编译 QtMqtt 模块:
make
make install
安装成功之后便可以在X86_64 Qt的路径中找到mqtt模块的目录
设置环境变量
确保在 x86_64 环境下正确设置了 Qt 环境变量:找到在linux系统中下载的关于X86_64架构的qt版本
export PATH=/home/vrikii/Qt5.12.9/5.12.9/gcc_64/bin:$PATH
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/home/vrikii/Qt5.12.9/5.12.9/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/vrikii/Qt5.12.9/5.12.9/gcc_64/plugins:$QT_PLUGIN_PATH
使更改生效
source ~/.bashrc
生效之后便可成功导入mqtt模块。
验证
在项目中添加 QtMqtt
模块:编辑您的项目 .pro
文件,添加 QT += mqtt
:
QT += core gui mqtt
创建一个简单的项目,确保能够成功编译并运行使用 QMqttClient
的代码。如果没有显示找不到该文件的路径,便表示导入mqtt模块成功。