Ubuntu22.04新装Qt6遇QtQuick等QML模块未找到的解决求助
问题详情
我在Ubuntu 22.04上执行以下命令安装了Qt6:
sudo apt-get install qt6-base-dev qt6-declarative-dev qt6-base-dev qtcreator
打开Qt Creator创建默认Qt Quick Application项目后,代码如下:
main.cpp
#include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QGuiApplication app(argc, argv); QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:/main.qml")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec(); }
main.qml
import QtQuick 2.15 *QML module not found (QtQuick).* import QtQuick.Window 2.15 *QML module not found (QtQuick.Window).* Window { width: 640 height: 480 visible: true title: qsTr("Hello World") }
运行项目时出现编译错误:
09:14:30: Starting /home/myself/build-qttest-Desktop-Debug/qttest... QML debugging is enabled. Only use this in a safe environment. Warning: Ignoring WAYLAND_DISPLAY on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. QQmlApplicationEngine failed to load component qrc:/main.qml:2:1: module "QtQuick.Window" is not installed qrc:/main.qml:1:1: module "QtQuick" is not installed qrc:/main.qml:2:1: module "QtQuick.Window" is not installed qrc:/main.qml:1:1: module "QtQuick" is not installed 09:14:30: /home/myself/build-qttest-Desktop-Debug/qttest exited with code 255
已安装的libqt库列表:
$ dpkg --get-selections | grep libqt libqt5concurrent5:amd64 install libqt5core5a:amd64 install libqt5dbus5:amd64 install libqt5designer5:amd64 install libqt5designercomponents5:amd64 install libqt5gui5:amd64 install libqt5help5:amd64 install libqt5network5:amd64 install libqt5positioning5:amd64 install libqt5printsupport5:amd64 install libqt5qml5:amd64 install libqt5qmlmodels5:amd64 install libqt5qmlworkerscript5:amd64 install libqt5quick5:amd64 install libqt5quicktest5:amd64 install libqt5quickwidgets5:amd64 install libqt5sensors5:amd64 install libqt5serialport5:amd64 install libqt5sql5:amd64 install libqt5sql5-sqlite:amd64 install libqt5svg5:amd64 install libqt5test5:amd64 install libqt5webchannel5:amd64 install libqt5webkit5:amd64 install libqt5widgets5:amd64 install libqt5xml5:amd64 install libqt5xmlpatterns5:amd64 install libqt6concurrent6:amd64 install libqt6core6:amd64 install libqt6dbus6:amd64 install libqt6gui6:amd64 install libqt6labsanimation6:amd64 install libqt6labsfolderlistmodel6:amd64 install libqt6labsqmlmodels6:amd64 install libqt6labssettings6:amd64 install libqt6labssharedimage6:amd64 install libqt6labswavefrontmesh6:amd64 install libqt6network6:amd64 install libqt6opengl6:amd64 install libqt6opengl6-dev:amd64 install libqt6openglwidgets6:amd64 install libqt6printsupport6:amd64 install libqt6qml6:amd64 install libqt6qmlcore6:amd64 install libqt6qmllocalstorage6:amd64 install libqt6qmlmodels6:amd64 install libqt6qmlworkerscript6:amd64 install libqt6qmlxmllistmodel6:amd64 install libqt6quick6:amd64 install libqt6quickcontrols2-6:amd64 install libqt6quickcontrols2impl6:amd64 install libqt6quickdialogs2-6:amd64 install libqt6quickdialogs2quickimpl6:amd64 install libqt6quickdialogs2utils6:amd64 install libqt6quicklayouts6:amd64 install libqt6quickparticles6:amd64 install libqt6quickshapes6:amd64 install libqt6quicktemplates2-6:amd64 install libqt6quicktest6:amd64 install libqt6quickwidgets6:amd64 install libqt6sql6:amd64 install libqt6sql6-sqlite:amd64 install libqt6test6:amd64 install libqt6widgets6:amd64 install libqt6xml6:amd64 install
请问如何修复该错误并完成项目编译?
修复步骤
修正QML导入版本
Qt6中QtQuick和QtQuick.Window的版本号需使用6.x系列,将main.qml中的导入语句替换为Ubuntu 22.04仓库默认的Qt6版本(6.2):import QtQuick 6.2 import QtQuick.Window 6.2确认Qt Creator使用Qt6工具链
打开Qt Creator,依次进入工具 > 选项 > 构建和运行 > Kits,确保当前项目绑定的Kit是基于Qt6的(名称通常包含Qt 6.x.x GCC 64bit)。若没有Qt6套件,点击添加手动配置,指定Qt6安装路径为/usr/lib/x86_64-linux-gnu/qt6/。补充安装缺失依赖
执行以下命令安装Qt6 Quick控件的开发包,确保所有QML组件可用:sudo apt-get install qt6-quickcontrols2-dev清理并重新构建项目
在Qt Creator中点击构建 > 清理项目,随后点击构建 > 构建项目,清除旧编译缓存后重新生成项目文件。
内容的提问来源于stack exchange,提问作者Mendes
相关产品推荐
相关产品推荐

