2012-09-01 12 views
5

Estoy desarrollando un juego de Windows que necesita muchas imágenes pequeñas y pequeñas, que puse en resources.qrc, están en tot. 14mbQt error de compilación: "falta de memoria asignando 134mb" "cc1plus.exe no encontrado"

Cuando intento compilar, el único error es: "falta de memoria asignando 134mb" "cc1plus.exe no encontrado".

¿Cómo puedo manejar esto? Muchas gracias.

+0

@fritzone Gracias por su respuesta, no sé cómo cargar mis archivos sin QRC, ya que siempre usé. ¿Puedes darme un enlace o algún código para hacerlo? Muchas gracias. –

Respuesta

7

No los coloque en el qrc, guárdelos como recursos individuales (o un nuevo archivo qrc ​​para cada imagen) y simplemente cárguelos al iniciar la aplicación. Qt genera un archivo qrc_XXXXX.cpp donde inserta de manera efectiva los datos binarios en forma de matriz de TODOS sus recursos en el archivo de recursoXXXXX en este archivo (sí, UNA matriz para sus imágenes de 14 MB, es decir: 14680064 bytes (escrita como hexadecimal) 0xXX) bytes en 1 archivo ... ¡será grande!), Muy posiblemente un compilador pobre simplemente tose en ellos ...

3

Bueno, a también tuve este problema. Pero en mi situación era necesario poner todos los recursos en .exe .

Después de este error compro RAM adicional (proyecto es muy importante) y luego se convirtió en mi memoria RAM 12 GB (de 6 GB).

Pero yo estaba muy sorprendido cuando el error no había dissaperared :) Después un poco de google, finalmente, encontré la respuesta there. El problema es cc1plus.exe límite de memoria ejecutable. Así, en el caso de Qt este problema puede ser resuelto de estos pasos (para Windows 7, MinGW32 4.9.2, para otros, probablemente, sólo tiene que cambiar las rutas):

  1. Si su sistema operativo es de 32 bits, a continuación, en cmd (como administrador) poner bcdedit /set IncreaseUserVa 3072
  2. Instalar masm32;
  3. cmd abierto (como administrador también);
  4. poner cd C:\Qt\Tools\mingw492_32\libexec\gcc\i686-w64-mingw32\4.9.2
  5. poner C:\masm32\bin\editbin.exe /LARGEADDRESSAWARE cc1plus.exe

eso es todo. Esperamos que sea útil :)

+0

Gracias, me llevó tanto tiempo darme cuenta, necesita editbin.exe para establecer la bandera de largeaddressaware en un ejecutable win32. – DanC225

Cuestiones relacionadas