cmake Qt5 因"模块 QtQuick 未安装"而失败



我尝试了一个简单的Qt Qml示例,我无法构建它。我已经在谷歌上搜索了十几个类似的问题,但没有一个建议对我有帮助。我的代码是这样的:

main.cpp

#include <QtGui/QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char* argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine(QUrl("qrc:main.qml"));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}

main.qml

import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow
{
visible: true
width: 640
height: 480
title: qsTr("Minimal Qml")
}

qml.qrc

<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>

和我的CMakeLists.txt

find_package(Qt5 COMPONENTS Widgets Qml Quick REQUIRED)
qt5_add_resources(QT_RESOURCES qml.qrc)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(PROJECT "qmltest")
project(${PROJECT})
add_executable(${PROJECT} main.cpp  ${QT_RESOURCES})
target_link_libraries(${PROJECT}
Qt5::WinMain
Qt5::Core
Qt5::Qml
Qt5::Quick
)

我使用windeployqt将所有库放到正确的位置。该程序在我的Windows机器上启动,但控制台输出以:

结束
QQmlApplicationEngine failed to load component
qrc:main.qml:2:1: module "QtQuick.Controls" is not installed
qrc:main.qml:1:1: module "QtQuick" is not installed
qrc:main.qml:2:1: module "QtQuick.Controls" is not installed
qrc:main.qml:1:1: module "QtQuick" is not installed

应用部署后的路径:

<DIR>   bearer
qgenericbearerd.dll
<DIR>   iconengines
qsvgicond.dll
<DIR>   imageformats
qgifd.dll
qicnsd.dll
qicod.dll
qjpegd.dll
qsvgd.dll
qtgad.dll
qtiffd.dll
qwbmpd.dll
qwebpd.dll
<DIR>   platforminputcontexts
qtvirtualkeyboardplugind.dll
<DIR>   platforms
qwindowsd.dll
<DIR>   qmltooling
qmldbg_debuggerd.dll
qmldbg_inspectord.dll
qmldbg_locald.dll
qmldbg_messagesd.dll
qmldbg_natived.dll
qmldbg_nativedebuggerd.dll
qmldbg_previewd.dll
qmldbg_profilerd.dll
qmldbg_quickprofilerd.dll
qmldbg_serverd.dll
qmldbg_tcpd.dll
<DIR>   scenegraph
qsgd3d12backendd.dll
<DIR>   styles
qwindowsvistastyled.dll
<DIR>   translations
...
<DIR>   virtualkeyboard
qtvirtualkeyboard_hanguld.dll
qtvirtualkeyboard_openwnnd.dll
qtvirtualkeyboard_pinyind.dll
qtvirtualkeyboard_tcimed.dll
qtvirtualkeyboard_thaid.dll
concrt140d.dll
d3dcompiler_47.dll
libEGLd.dll
libGLESv2d.dll
msvcp140d.dll
msvcp140d_atomic_wait.dll
msvcp140d_codecvt_ids.dll
msvcp140_1d.dll
msvcp140_2d.dll
qmltest.exe
qmltest.ilk
qmltest.pdb
Qt5Cored.dll
Qt5Guid.dll
Qt5Networkd.dll
Qt5Qmld.dll
Qt5Quickd.dll
Qt5Svgd.dll
Qt5Widgetsd.dll
vccorlib140d.dll
vcruntime140d.dll

我使用Qt 5.15开源。我将其构建并安装在WIndows7上。什么好主意吗?谢谢你!

对于我们的一个Windows应用,我们部署了超过1700个文件。目录结构大致如下:

<DIR> MyQtApp_Bin_Dir
MyQtApp.exe
COPY C:QtQt5.15.65.15.6msvc2019_64bin*.dll
COPY C:QtQt5.15.65.15.6msvc2019_64resources*.*
COPY C:QtQt5.15.65.15.6msvc2019_64plugins*
COPY VISUALSTUDIO_REDISTRIBUTABLES_HERE
<DIR> MyQtApp_Bin_Dirqml
COPY C:QtQt5.15.65.15.6msvc2019_64qml*

在您发布的目录转储中,似乎没有qml文件夹。内容直接控制有问题的import语句。

最新更新