CMake,QT Quick & Visual Studio:"qrc:/main.qml:-1 File not found"

CMake, QT Quick & Visual Studio: "qrc:/main.qml:-1 File not found"

本文关键字:qml main File found not qrc Quick Visual Studio CMake QT      更新时间:2023-10-16

我正在尝试将QT Quick(QML(与Visual Studio 2015CMake一起使用。我从一个示例" QT快速控件 - 画廊"开始,然后将其转移到Cmake。它在QT Creator(使用Visual Studio的编译器(中正常工作,但在Visual Studio中不行(使用CMake GUI生成的解决方案(:

QQmlApplicationEngine failed to load component
qrc:/main.qml:-1 File not found

我试图隔离这个问题并找到了这个很棒的例子:https://github.com/mattfife/qtquick-with-cmake,在QT创建者中起作用(经过一些修改(,但在视觉工作室。

qml.qrc文件是这样的:

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

对于两个环境(QT创建者和Visual Studio(,我在构建目录中有一个文件src/qml.qrc.depends,其内容正是以前的QML文件。

main.cpp中的重要部分:

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
    return -1;

如果我在CMakeLists.txt文件中消除了下一行,则可以在QT创建者中复制该错误:

qt5_add_resources(qml_QRC src/qml.qrc)

关于如何解决它或尝试什么的想法?例如,我不知道如何调试此QQmlApplicationEngine对象。

确保您在项目中添加了一个生成的文件(我假设是qrc_qml.cpp(。在Visual Studio中,当您右键单击QML.QRC时,会有一个编译选项(或CTRL F7(。这将从您的qml.qrc生成一个CPP文件。它通常是在生成文件夹中生成的。