Unknown module(s) in QT: mqtt

本文详细介绍了在Windows 10上使用QT 5.12.9集成MQTT库的步骤,涉及库文件复制、头文件调整、模块配置及常见问题解决。通过实例展示了如何正确设置编译路径和依赖,确保Qt+mqtt的顺利运行。
摘要由CSDN通过智能技术生成

Unknown module(s) in QT: mqtt

以上问题只是个引子,我遇到的问题是mqtt库无法通过QT += mqtt方式使用。于是编译器给出以上提示。以下描述解决办法。

我的编译环境

操作系统 windows10 版本1909
QT 安装包版本:5.12.9
QT 安装位置:C:\Qt\Qt5.12.9\Examples\Qt-5.12.9
QT 编译工具链:Desktop_Qt_5_12_9_MSVC2017_64bit
mqtt 源代码:来自github,注意选择与QT安装包一致的版本。 下载链接
mqtt 源码本地位置:d:/qtest/

mqtt库编译结果

  1. 双击qtmqtt.pro,打开工程;
  2. 构建工程,目录(build-qtmqtt-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\bin)下生成Qt5Mqtt.dll和Qt5Mqttd.dll,分别对应发行版(release)和调试版(debug)。
  3. 目录build-qtmqtt-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\lib下生成Qt5Mqtt.lib和.prl,以及Qt5Mqttd.lib和prl文件。

示例编译结果

  1. 按照QT官方规范,把示例代码(D:\qtest\qtmqtt-5.12.9\examples)mqtt整个目录copy至QT安装目录(C:\Qt\Qt5.12.9\Examples\Qt-5.12.9)。
  2. copy完成后,双击示例工程文件mqtt.pro,打开示例工程。
  3. 构建设置中选择MSVC2017_64bit(我本地的工具链)。
  4. 实施构建动作。

出现的问题及解决办法

  1. 问题1:找不到库文件Qt5Mqttd.lib。编译输出:-1: error: dependent ‘C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Mqttd.lib’ does not exist.
    解决办法:把编译好的对应库copy到错误提示中标明的位置,再次编译。
  2. 问题2:头文件不存在。编译输出:error: dependent ‘5.12.9\msvc2017_64\include\QtMqtt\QMqttClient’ does not exist.
    解决办法:以QMqttClient不存在为例。需要复制mqtt源码中的对应头文件到"QT安装目录\5.12.9\msvc2017_64\include\QtMqtt",同时增加QMqttClient文件,文件内容很简单:#include “qmqttclient.h”。举一反三处理所有类似问题。
  3. 问题3:不知道QT中的mqtt库。编译输出: error: Unknown module(s) in QT: mqtt
    解决办法:在mqtt编译输出的目录中找到目录:mkspecs\modules-inst,并复制两个pri文件到目录C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\mkspecs\modules,再次编译不在出现错误。
    总结
    一、库版本和位置是否放置在相应编译工具链目录下。
    二、头文件是否对应到类名文件,并放置到编译工具链目录下。
    三、modules-inst下的pri文件是否放置到编译工具链目录的相应目录下, QT +=mqtt 能否正常工作都依赖目录里的pri文件。

成果

示例代码中的simpleclient.exe运行结果。
simpleclient运行效果

没有更多了(完)

桃花坞里桃花庵,桃花庵里桃花仙;
桃花仙人种桃树,又摘桃花卖酒钱。唐寅-明

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值