在编译qrc文件时,我遇到了堆中空间不足的问题。 qrc文件列表:
<RCC>
<qresource prefix="/">
<file>package.lpgk</file>
</qresource>
</RCC>
所以,如你所见,qrc文件包含一个文件(35Mb),我仍然有编译器错误C1060。
在Windows任务管理器(taskmgr.exe)中,我看到,编译器使用的是2Gb RAM(当前是所有可用内存),并进行交换。
指定像/ Zm2000这样的编译器选项没有帮助。 我使用的是MSVC 2010版本。
答案 0 :(得分:2)
此外,您可以使用外部二进制资源文件。 通过以下方式创建:
rcc -binary myresource.qrc -o myresource.rcc
比在应用程序中加载
QResource::registerResource("/path/to/myresource.rcc");
此进程没有使用VS编译器,也没有出现错误。
答案 1 :(得分:1)
迁移到Visual Studio 2013后,我们遇到了同样的问题。在VS 2010上,对于32位和64位Windows,都没有问题。在VS 2013上,我们能够通过禁用问题模块的多处理器编译来修复64位版本,但这并没有修复32位版本。升级到最新版本的建议实际上是在我们的案例中导致问题的原因,所以我不一定希望能解决问题,也不总是这样做。
我们生成的.cpp只有45 MB,所以它比原始海报的例子要小得多。此时,我的方法可能是将.qrc文件拆分为几个较小的文件。我们嵌入了许多字体文件,所以我可以这样做。如果问题是由单个大型资源(例如视频)引起的,那么拆分它将无法正常工作。我知道这不是一个明确的答案,但希望其他信息有助于找到更好的解决方案。
答案 2 :(得分:0)
对于仍然面临此问题的任何人,都有关于here和here的错误报告。一种简单的解决方案是将resources_big
附加到项目CONFIG
(即 .pro 文件)中,如下所示:
CONFIG += c++17 resources_big
答案 3 :(得分:-1)
解决方法:将MSVC编译器更新到最新版本(11.00.50727.1),即2012 对于编译,文件(185Mb)编译器使用11-12 Gb的内存(在我的机器上使用4Gb RAM非常慢)