首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“未安装模块Qt5”的cmake QtQuick故障

使用“未安装模块Qt5”的cmake QtQuick故障
EN

Stack Overflow用户
提问于 2022-11-10 12:17:33
回答 1查看 65关注 0票数 0

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

main.cpp

代码语言:javascript
复制
#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

代码语言:javascript
复制
import QtQuick 2.15
import QtQuick.Controls 2.15

ApplicationWindow
{
    visible: true
    width: 640
    height: 480
    title: qsTr("Minimal Qml")
}

qml.qrc

代码语言:javascript
复制
<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
    </qresource>
</RCC>

还有我的CMakeLists.txt

代码语言:javascript
复制
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机器上启动,但控制台输出以:

代码语言:javascript
复制
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

部署应用程序后的路径:

代码语言:javascript
复制
<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

我使用的是QT5.15开源。我构建了它,并在WIndows7上安装了它。有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 04:02:50

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

代码语言:javascript
复制
<DIR> MyQtApp_Bin_Dir
          MyQtApp.exe
          COPY C:\Qt\Qt5.15.6\5.15.6\msvc2019_64\bin\*.dll
          COPY C:\Qt\Qt5.15.6\5.15.6\msvc2019_64\resources\*.*
          COPY C:\Qt\Qt5.15.6\5.15.6\msvc2019_64\plugins\*
          COPY VISUALSTUDIO_REDISTRIBUTABLES_HERE

<DIR> MyQtApp_Bin_Dir\qml
          COPY C:\Qt\Qt5.15.6\5.15.6\msvc2019_64\qml\*

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74388849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档