向 QML 项目添加资源导致编译速度非常慢

Adding resources to QML project results in very slow compilation

我在我的项目的资源文件中添加了一些图标,突然间,对 QML 代码的每一个微小更改都会导致在项目 运行 之前等待 7-8 秒的时间,这几乎是这样的感觉正在重新编译 C++ 代码,但实际上这是来自 qrc 文件的 "compilation" 的延迟。

我尝试禁用 qrc 压缩,希望它会变得更快,但没有任何效果。考虑到我使用的是具有快速 CPU 和 SSD 的高端系统,这非常难 运行ge 和烦人 - 额外的资源只有 2 兆字节,为什么要花这么长时间?将相同的文件添加到高压缩率的存档大约需要 5 毫秒。

好的,仍然不知道为什么这么慢,但我找到了避免它的方法。

问题在于,对于 QML 源的每个微小更改,都会重新编译整个资源文件。所以我将所有图像移动到另一个资源文件,不需要做任何其他事情,不需要更改路径或任何东西,现在 QML 代码位于不同的资源文件中,并且带有图像的代码不再在每次更改时重新编译, 因此项目会立即启动。

Qt 的资源系统将创建一个 .cpp 文件,该文件将包含您放置在那里的文件的压缩二进制数据的 C++ 数组,因此使用 2MB 的图像 + 一个您的 qml 文本文件,qrc 将不得不重新生成一个相当大的文件编译也需要时间的文件。

更多信息here