Qt编译错误:“内存不足分配134 MB”“找不到cc1plus.exe”

时间:2012-09-01 20:47:40

标签: c++ qt

我正在开发一款需要很多不同小图片的Windows游戏,我将它放在resources.qrc中,它们都是tot。 14 MB。

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

我该如何处理?

3 个答案:

答案 0 :(得分:9)

不要将它们放在qrc中,将它们保存为单独的资源(或每个图像的新qrc文件),并在应用程序启动时加载它们。 Qt生成一个qrc_XXXXX.cpp文件,它有效地将资源文件中的所有资源的char数组形式的二进制数据插入到该文件中(是​​的,一个阵列用于14MB的图像,即:14680064字节(写成十六进制)( 0xXX)字节到1个文件......它会很大!),极可能是差的编译器只是咳嗽他们......

答案 1 :(得分:8)

Windows 7SP1 x86 4 GB RAM

Qt 5.7.0

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

  

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

解决方案:

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

我把它放在这里: cc1plus.exe: out of memory | 60MB encrypted resource file

答案 2 :(得分:4)

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

出现此错误后,我购买了额外的RAM(项目非常重要),然后我的RAM变为12 GB(从6 GB开始)。

但是当错误没有消失时我感到非常惊讶:)经过一些谷歌搜索,最后,我找到了答案there。问题是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
  6. 这就是全部。

相关问题