Mac端QT5.14.2配置QMQTT,亲测有效

本文详细记录了从GitHub下载Qt MQTT模块并成功编译的过程,包括选择版本、解决头文件错误、配置环境变量及安装步骤,适用于遇到类似问题的开发者。

在百度上搜了很长时间,用过很多方法,最后终于是搞定了。
记录下来,希望能帮到和我当时一样不知所措的小伙伴们!

此时大多数都会出现以下问题找不到头文件

  • 左侧项目栏打开src->mqtt->Headers,可以看见所有mqtt的头文件都在这了,打开第一个,等它识别完成你会发现头文件都有报错。如图:

  • 此时,只需要将.h文件中带有QtMqtt文件夹引用的删除即可,.cpp文件不用动,

网上有说在Qt安装目录下的include文件夹下新建一个QtMqtt文件夹,再将.h文件全部复制进去,就可以消除错误了,但是我的好像不可以;如果你的可以,就不需要这一步。

如图:

此时就不会显示错误。

  • 再次编译
  • 此时便可编译通过,如有出现问题,欢迎在评论区评论。
  • 打开终端Terminal
  • cd 到qmqtt-5.14.2目录下
  • $ qmake
    如果没有出现qmake: command not found错误,请直接跳到下一黑点
$ vim ~/.bash_profile

//.bash_profile写入以下语句
export QTDIR=/Users/yucheng/Qt5.14.2/5.14.2/clang_64  //注意这里是你自己的Qt安装路径
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
//保存退出

//查看qmake版本,如果显示当前版本,即完成
$ qmake -v
  • $ make -j4

  • $ sudo make install
    输入管理员密码即可。

  • 这个时候进入Qt安装目录/Users/yucheng/Qt5.14.2/5.14.2/clang_64/lib,可看见该目录下修改、新建了

  • 进入QtMqtt.framework/Versions/5/Headers/,发现此文件夹下只有一个文稿。!此时不要关闭!

  • 然后打开下载的qmqtt-5.14.2/src/mqtt/将里面所有文件拷贝到上述文件夹

  • OK! 已完成

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在新项目中使用mqtt需要在QT后加上mqtt 如下

QT       += core gui mqtt
//或
QT       += core gui 
QT		 += mqtt

有问题请一定在评论区留言,我及时修改,谢谢🙏!

### 解决方案 在 Ubuntu 20.04 下安装 Qt 5.14.2配置 MQTT 库时,如果遇到 `no rule` 错误,通常是因为项目文件未正确解析或缺少必要的构建规则。以下是可能的原因分析以及解决方案: #### 原因分析 1. **qmake 路径错误**:如果使用的 qmake 不匹配当前项目的工具链,则可能导致无法识别 `.pro` 文件中的规则[^1]。 2. **依赖项缺失**:如果没有正确引入 QT-MQTT 的源码目录及其头文件路径,编译器将无法找到对应的模块定义[^3]。 3. **分支选择不当**:GitHub 上的 QT-MQTT 库有多个分支,部分分支仅支持更高版本的 Qt(如 dev 分支适用于 Qt 6.x),因此需要确保选择了适合 Qt 5.14.2 的分支[^2]。 --- #### 解决方法 ##### 步骤一:确认并设置正确的 qmake 路径 确保使用的是与 Qt 5.14.2 对应的 qmake 工具。可以通过以下方式验证: ```bash /home/userlpe/Qt5.14.2/5.14.2/gcc_64/bin/qmake --version ``` 上述命令应该返回类似于 `Qt version 5.14.2` 的信息。如果不是,请调整环境变量 PATH 或直接指定完整的 qmake 路径。 ##### 步骤二:下载适配的 QT-MQTT 源码 访问 GitHub 链接 https://github.com/qt/qtmqtt/releases/tag/v5.14.2 ,下载针对 Qt 5.14.2 的稳定版本。解压后将其放置到合适的位置,例如 `/path/to/qtmqtt/src`。 ##### 步骤三:修改 .pro 文件以包含 MQTT 模块 编辑 `qtmqtt.pro` 文件,在其中加入如下内容以显式声明对 MQTT 模块的支持: ```plaintext QT += core network mqtt INCLUDEPATH += /path/to/qtmqtt/src DEPENDPATH += /path/to/qtmqtt/src ``` 注意替换 `/path/to/qtmqtt/src` 为实际的源码路径。 ##### 步骤四:重新运行 qmake 和 make 清理之前的构建缓存,并重新生成 Makefile: ```bash rm -rf ./build/ mkdir build && cd build /path/to/your_qt_installation_path/bin/qmake ../qtmqtt.pro make ``` 此过程会强制更新所有的构建规则,从而修复潜在的 `no rule` 错误。 --- ### 示例代码片段 假设已成功完成上述操作,可以尝试编写简单的试程序来验证功能是否正常工作: ```cpp #include <QMqttClient> #include <QDebug> int main(int argc, char *argv[]) { QMqttClient client; qDebug() << "Connecting to host..."; client.connectToHostEncrypted("test.mosquitto.org", 8883); return 0; } ``` --- ### 总结 通过校正 qmake 路径、选用合适的 QT-MQTT 分支以及完善项目配置文件的内容,能够有效解决 `no rule` 错误问题。此外,建议始终关注官方文档和社区反馈,以便及时获取最新技术支持。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值