GNU/Linux >> LINUX-Kenntnisse >  >> Linux

C++11:g++-4.7 interner Compilerfehler

Es scheint, dass Ihr Programm unangemessen viel Speicher benötigt (vielleicht wegen zu vieler Template-Erweiterungen).

Verwenden eines aktuellen g++-trunk :

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

mit den folgenden zsh-Limits:

   % 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

(dies auf Debian/Sid/AMD64 mit i3770K Intel-Prozessor und 16 GB RAM)

Ich bekomme:

  % 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

Es scheint also, dass die Vorlagenerweiterung so viel Speicher benötigt, dass Ihre Programmierung nicht sinnvoll ist.

Ich bin mir nicht sicher, ob dies als GCC-Fehler akzeptiert wird. Die Makroerweiterung für C++-Vorlagen ist bekanntermaßen Turing-komplett und Sie stoßen einfach an die Wand. Und der GCC-Trunk meldet einen schwerwiegenden, aber verständlichen Fehler.

Die Moral der Geschichte könnte darin bestehen, rlimit(2) angemessen zu setzen (mit Grenzen, die mit Ihrem System und Ihrer Hardware kompatibel sind), vielleicht mit limit zsh eingebaut oder ulimit bash eingebaut.


Linux
  1. Konfigurationsfehler:kein akzeptabler C-Compiler in $PATH gefunden

  2. FEHLER:Es gibt nicht genügend Systemspeicher im internen Ressourcenpool, um diese Abfrage auszuführen

  3. Das Ausführen von 'gcc' auf einer C++-Quelldatei unter Linux gibt cc1plus:out of memory allocating ... Fehlermeldung

  4. configure:Fehler:kein akzeptabler C-Compiler in $PATH gefunden

  5. Wie wirkt sich ein Single-Bit-Speicherfehler auf Linux aus?

So installieren Sie den GCC-Compiler unter CentOS 7

So installieren Sie den GCC-Compiler unter Debian 10 Linux

Was ist ein 500 Internal Server Error?

So installieren Sie den GCC-Compiler auf AlmaLinux 8

So installieren Sie den GCC-Compiler unter Ubuntu 20.04

So installieren und verwenden Sie den GCC-Compiler auf einem Linux-System