2

我在编译 qrc 文件时遇到了堆空间不足的问题。qrc文件列表:

<RCC>
    <qresource prefix="/">
        <file>package.lpgk</file>
    </qresource>
</RCC>

因此,如您所见,qrc 文件包含一个文件(35Mb),我仍然有编译器错误 C1060。

在 Windows 任务管理器 (taskmgr.exe) 中,我看到编译器使用了大约 2Gb RAM(目前都是可用内存)和交换。

指定像 /Zm2000 这样的编译器选项没有帮助。我使用 MSVC 2010 版本。

4

4 回答 4

3

此外,您可以使用外部二进制资源文件。通过以下方式创建它:

rcc -binary myresource.qrc -o myresource.rcc

比在应用程序中加载

QResource::registerResource("/path/to/myresource.rcc");

此过程没有使用 VS 编译器,也没有引发错误。

于 2014-12-11T12:42:00.360 回答
2

对于仍然面临这个问题的任何人,这里这里都有关于它的错误报告。简单的解决方案是像这样附加resources_big到您的项目CONFIG(即.pro文件)中:

CONFIG += c++17 resources_big
于 2019-05-20T12:20:35.073 回答
1

迁移到 Visual Studio 2013 后,我们遇到了同样的问题。在 VS 2010 上,对于 32 位和 64 位 Windows,都没有问题。在 VS 2013 上,我们能够通过禁用问题模块的多处理器编译来修复 64 位构建,但这并不能修复 32 位构建。在我们的案例中,升级到最新版本的建议实际上是导致问题的原因,所以我不一定希望它能够解决问题,也不总是可以做到这一点。

我们生成的 .cpp 只有 45 MB,因此它比原始海报的示例要小得多。此时,我的方法可能是将 .qrc 文件拆分为几个较小的文件。我们正在嵌入许多字体文件,所以我可以这样做。如果问题是由单个大型资源(例如视频)引起的,那么拆分它将不起作用。我知道这不是一个明确的答案,但希望其他信息将有助于找到更好的解决方案。

于 2014-10-29T19:58:42.933 回答
-1

解决方法:将 MSVC 编译器更新到最新版本 (11.00.50727.1) aka 2012 编译该文件 (185Mb) 编译器使用 11-12 Gb 内存(在我的机器上使用 4Gb RAM 非常慢)

于 2013-08-21T14:46:52.627 回答