GNU/Linux >> Tutoriales Linux >  >> Linux

C++11:g++-4.7 error interno del compilador

Parece que su programa requiere una cantidad excesiva de memoria (quizás debido a demasiadas expansiones de plantillas).

Usando un g++-trunk reciente :

gcc version 4.8.0 20121026 (experimental) [trunk revision 192860] (GCC) 

con los siguientes límites zsh:

   % limit          
   cputime         unlimited
   filesize        unlimited
   datasize        15000MB
   stacksize       8MB
   coredumpsize    400MB
   memoryuse       15000MB
   maxproc         128166
   descriptors     1024
   memorylocked    64kB
   addressspace    16000MB
   maxfilelocks    unlimited
   sigpending      128166
   msgqueue        819200
   nice            0
   rt_priority     0
   rt_time         unlimited

(esto en Debian/Sid/AMD64 con procesador Intel i3770K y 16 Gb de RAM)

Estoy recibiendo:

  % time g++-trunk -std=gnu++11 andrew.cc -o andrew
  virtual memory exhausted: Cannot allocate memory
  g++-trunk -std=gnu++11 andrew.cc -o andrew :
  108.25s user 3.28s system 89% cpu 2:03.98 total

Entonces parece que la expansión de la plantilla requiere tanta memoria que su programa no es razonable.

No estoy seguro de si esto se aceptará como un error de GCC. Se sabe que la expansión de macros para las plantillas de C ++ está completa y simplemente golpea la pared. Y el tronco de GCC informa un error fatal, pero comprensible.

La moraleja de la historia podría ser setrlimit(2) apropiadamente (con límites compatibles con su sistema y hardware), tal vez usando limit zsh incorporado o ulimit bash integrado.


Linux
  1. ERROR:No hay suficiente memoria del sistema en el grupo de recursos interno para ejecutar esta consulta

  2. estructura sigaction error incompleto

  3. gcc -O2 vs sin causas error

  4. Error al compilar libgcc xgcc

  5. Ejecutar 'gcc' en el archivo fuente de C++ en Linux da cc1plus:asignación de memoria insuficiente... mensaje de error

Cómo instalar el compilador GCC en CentOS 7

Cómo instalar el compilador GCC en Debian 10 Linux

¿Qué es un error interno del servidor 500?

Cómo instalar el compilador GCC en AlmaLinux 8

Cómo instalar el compilador GCC en Ubuntu 20.04

Cómo instalar y usar el compilador GCC en el sistema Linux