GNU/Linux >> Linux Esercitazione >  >> Linux

C++11:errore interno del compilatore g++-4.7

Sembra che il tuo programma richieda una quantità irragionevole di memoria (forse a causa delle troppe espansioni dei template).

Utilizzando un g++-trunk recente :

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

con i seguenti limiti 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

(questo su Debian/Sid/AMD64 con processore Intel i3770K e 16 Gb di RAM)

Sto ricevendo:

  % 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

Quindi sembra che l'espansione del template richieda così tanta memoria che la tua programmazione non è ragionevole.

Non sono sicuro che questo verrà accettato come bug GCC. L'espansione macro per i modelli C++ è nota per essere Turing completa e hai appena colpito il muro. E il trunk GCC segnala un errore fatale, ma comprensibile.

La morale della favola potrebbe essere setrlimit(2) in modo appropriato (con limiti compatibili con il tuo sistema e hardware), magari usando limit zsh integrato o ulimit bash integrato.


Linux
  1. Errore di configurazione:nessun compilatore C accettabile trovato in $PATH

  2. Che cos'è un errore interno del server 500

  3. 15 Opzioni della riga di comando del compilatore GCC più utilizzate

  4. struct errore incompleto di sigazione

  5. Errore durante la compilazione di libgcc xgcc

Come installare il compilatore GCC su CentOS 7

Come installare il compilatore GCC su Debian 10 Linux

Che cos'è un errore interno del server 500?

Come installare il compilatore GCC su AlmaLinux 8

Come installare il compilatore GCC su Ubuntu 20.04

Come installare e utilizzare il compilatore GCC su sistema Linux