开发环境:windows、Qt5.14.2
在导入项目编译时发生如下报错:
:-1: error: Project ERROR: Unknown module(s) in QT: charts mqtt
网上搜索后发现是Qt缺少Qt Charts和Qt Mqtt这两个模块导致的。
一、导入charts模块
网上的资料大多都是说通过MaintenanceTool.exe来导入,但是运行后我这只显示已安装的模块,无法添加新的模块,折腾一番无果后,选择了重装Qt然后勾选上Qt Charts模块
关于只显示已安装模块的问题,参考这篇博客,猜测是因为临时资料档案库所用的镜像资源的问题,后来参考这篇博客,能显示到未安装的模块了
QT的MaintenanceTool.exe进行组件添加、更新、移除(QtCharts)-优快云博客
首先进入:Index of /qt/online/qtsdkrepository/windows_x86/desktop/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
找到对应自己Qt版本的路径(比如我的是5.14.2),然后在里面找到自己缺少的组件,把URL添加到临时资料档案库就可以显示未添加的模块了
Index of /qt/online/qtsdkrepository/windows_x86/desktop/qt5_5142_src_doc_examples/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
Index of /qt/online/qtsdkrepository/windows_x86/desktop/qt5_5142_wasm/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
能看到未安装的模块了
二、导入Mqtt模块
Mqtt不是QtCreator里的模块,需要另外添加
1、在源码库上找到对应自己qt版本的mqtt模块下载
解压后的内容如下,然后通过qt打开该工程
2、编译qtmqtt模块
取消勾选影子构建,Make arguents设置为install(会将mqtt模块复制到qt安装目录)
编译出现以下报错:
G:\qtmqtt-mvsc\qtmqtt-5.14.2\qtmqtt-5.14.2\src\mqtt\qmqttauthenticationproperties.h:33: error: QtMqtt/qmqttglobal.h: No such file or directory
#include <QtMqtt/qmqttglobal.h>
^~~~~~~~~~~~~~~~~~~~~~
主要原因是编译器是按照在Qt安装目录下搜索的,但我们文件是我们自己随意放的目录下的 src\mqtt 路径下。解决方案:
在qt安装目录下include下创建QtMqtt文件夹,例如
D:\Qt5.14\5.14.2\msvc2017_64\include\QtMqtt
将mqtt模块文件src/mqtt下所有.h头文件添加到我们创建的QtMqtt文件夹。
这样mqtt模块就会编译成功,并且自动添加到qt中,最后正确运行需要mqtt的项目
参考资料: