1 votes

Impossible de compiler un simple programme C++ avec g++

Lorsque j'essaie de compiler une c++ programme utilisant g++ Je reçois l'erreur suivante, la trace de la pile est vraiment longue, c'est juste un échantillon :

........... 
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\330’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\330’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\340’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\5’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\260’ in program
In file included from /usr/include/endian.h:60:0,
                 from /usr/include/ctype.h:39,
                 from /usr/include/c++/4.8/cctype:42,
                 from /usr/include/c++/4.8/bits/localefwd.h:42,
                 from /usr/include/c++/4.8/ios:41,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from post_test_5.cpp:1:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:1:1: error: expected unqualified-id before numeric constant
/usr/include/x86_64-linux-gnu/bits/byteswap.h:11:2: error: expected unqualified-id before numeric constant
In file included from /usr/include/endian.h:60:0,
                 from /usr/include/ctype.h:39,
                 from /usr/include/c++/4.8/cctype:42,
                 from /usr/include/c++/4.8/bits/localefwd.h:42,
                 from /usr/include/c++/4.8/ios:41,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from post_test_5.cpp:1:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:26:31: error: expected declaration before ‘}’ token

Et l'exemple de code est post_test_5.cpp :

#include<iostream>

int main() {

  std::cout << "Hello World" << std::endl;
  return 0;
}

Et j'essaie de l'exécuter comme :

g++ -c post_test_5.cpp

Mon gcc et les versions ubuntu sont :

gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
kirill@kirill-ThinkPad-X140e:~/CPlusPlusStuff/PostTest$ lsb_release -d
Description:    Ubuntu 14.04 LTS

Cependant, lorsque j'utilise gcc pour compiler .c tout fonctionne correctement.

Quelle pourrait en être la cause ?

4voto

meva Points 158

Il semble que (au moins) le fichier /usr/include/x86_64-linux-gnu/bits/byteswap.h ont été en quelque sorte corrompus. Ouvrez-le avec un éditeur de texte et vérifiez s'il ressemble à un fichier d'en-tête C++ normal.

Si c'est le cas, réinstallez le paquet libc6-dev avec la commande sudo apt-get --reinstall install libc6-dev

Si ce n'est pas le cas, vous devrez poster ici le contenu complet du fichier post_test_5.cpp ainsi que le résultat complet de la compilation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X