GNU/Linux >> Tutoriels Linux >  >> Linux

C++11 :erreur interne du compilateur g++-4.7

Il semble que votre programme nécessite une quantité de mémoire déraisonnable (peut-être à cause d'un trop grand nombre d'extensions de modèles).

Utilisation d'un g++-trunk récent :

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

avec les limites zsh suivantes :

   % 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

(ceci sur Debian/Sid/AMD64 avec processeur Intel i3770K et 16 Go de RAM)

Je reçois :

  % 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

Il semble donc que l'expansion des modèles nécessite tellement de mémoire que vous programmez n'est pas raisonnable.

Je ne sais pas si cela sera accepté comme un bogue GCC. L'extension de macro pour les modèles C++ est connue pour être complète de Turing et vous venez de vous heurter au mur. Et le tronc GCC signale une erreur fatale, mais compréhensible.

La morale de l'histoire pourrait être de setrlimit(2) de manière appropriée (avec des limites compatibles avec votre système et votre matériel), peut-être en utilisant limit zsh intégré ou ulimit bash intégré.


Linux
  1. Erreur de configuration :aucun compilateur C acceptable trouvé dans $PATH

  2. ERREUR :la mémoire système est insuffisante dans le pool de ressources interne pour exécuter cette requête

  3. Résoudre les erreurs de serveur interne WordPress

  4. configure :erreur :aucun compilateur C acceptable trouvé dans $PATH

  5. Comment puis-je être informé des erreurs ECC sous Linux ?

Comment installer le compilateur GCC sur CentOS 7

Comment installer le compilateur GCC sur Debian 10 Linux

Qu'est-ce qu'une erreur de serveur interne 500 ?

Comment installer le compilateur GCC sur AlmaLinux 8

Comment installer le compilateur GCC sur Ubuntu 20.04

Comment installer et utiliser le compilateur GCC sur le système Linux