“error: Unknown module(s) in QT: mqtt”问题解决
当我在qt项目中输入"QT += mqtt"时并且选择构建kits为X86_64版本时显示无法找到mqtt模块但是当我将构建kits改为arm版本之后却能正常构建。后面发现发生这种情况的原因可能是缺少 x86_64 架构下的 MQTT 模块,并且添加了arm架构的MQTT模块,通过检查"~/.bashrc"文件可以印证。其中只设置了arm环境下的QT环境变量。
当我在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模块成功。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)