8

我正在开发一个需要大量不同图像的 Windows 游戏,我将它们放入 resources.qrc 中,它们都在里面。14 MB。

当我尝试编译时,唯一的错误是:“内存不足分配 134 MB”“cc1plus.exe 未找到”。

我该如何处理?

4

4 回答 4

12

Windows 7SP1 x86 4 GB 内存

Qt 5.7.0

当我在 Qt 的资源中添加大文件时,我遇到了同样的问题。我有错误:

cc1plus.exe:-1: 错误:分配 1073745919 字节的内存不足

解决方案:

添加CONFIG += resources_big*.pro文件中。

我把它放在这里:cc1plus.exe:内存不足| 60MB加密资源文件

于 2017-08-04T09:25:16.687 回答
9

Don't put them in the qrc, keep them as individual resources (or a new qrc file for each of the image), and just load them on application startup. Qt generates a qrc_XXXXX.cpp file where it effectively inserts the binary data in form of char array of ALL your resources in the resource fileXXXXX in this file (yes, ONE array for your images of 14MB, ie: 14680064 bytes (written as hex (0xXX) bytes into 1 file... it will be big!), highly possibly poor compiler just coughs on them...

于 2012-09-01T21:22:06.187 回答
6

嗯,我也有这个问题。但在我的情况下,投入所有资源.exe是必要的。

在这个错误之后,我购买了额外的 RAM(项目非常重要),然后我的 RAM 变成了 12 GB(从 6 GB)。

但是当错误没有消失时,我感到非常惊讶:) 经过一番谷歌搜索,终于,我在那里找到了答案。问题是cc1plus.exe可执行内存限制。因此,在 Qt 的情况下,可以通过以下步骤解决此问题(对于 Windows 7,MinGW32 4.9.2,对于其他可能只需要更改路径):

  1. 如果您的操作系统是 32 位,则在 cmd(作为管理员)中输入bcdedit /set IncreaseUserVa 3072
  2. 安装masm32
  3. 打开 cmd (也以管理员身份);
  4. cd C:\Qt\Tools\mingw492_32\libexec\gcc\i686-w64-mingw32\4.9.2
  5. C:\masm32\bin\editbin.exe /LARGEADDRESSAWARE cc1plus.exe

就这样。

于 2016-10-14T11:52:23.873 回答
1

也不要忘记显而易见的事情:该消息可能实际上是真实的,并且您确实没有足够的内存,或者无法为需要它的进程提供内存。

我的系统上有 16GB 的 RAM,对于我的小型应用程序来说应该足够了。“不可能是这样的。” 我想……但我的机器已经好几个星期没有重新启动了。

只需重新启动系统即可为我修复此错误。

于 2021-09-13T14:53:40.587 回答