CMake,QT Quick & Visual Studio:“qrc:/main.qml:-1文件未找到”

hs1rzwqc  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(204)

我尝试将QT QuickQML)与Visual Studio 2015CMake一起使用。我从一个示例“QT Quick Controls - Gallery”开始,并将其转移到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 Creator中工作(经过一些修改),但在Visual Studio中有完全相同的问题。
qml.qrc文件如下:

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


对于这两个环境(QT Creator和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 Creator中重现错误:

qt5_add_resources(qml_QRC src/qml.qrc)


你知道如何解决这个问题吗?或者尝试什么?例如,我不知道如何调试这个QQmlApplicationEngine对象。

bf1o4zei

bf1o4zei1#

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

相关问题