41 votes

Symbole non défini ___gxx_personality_v0 sur le lien

Je suis en train de construire ce symbole indéfini avec cette ligne de commande:

 $ gcc test.cpp
Undefined symbols:
  "___gxx_personality_v0", referenced from:
  etc...
 

test.cpp est simple et devrait bien se construire. Quel est le deal?

65voto

ryan_s Points 3076

Utilisation

 g++ test.cpp
 

au lieu de cela, puisque c’est du code c ++.


Ou, si vous voulez vraiment utiliser gcc , ajoutez -lstdc++ à la ligne de commande, comme suit:

 gcc test.cpp -lstdc++
 

L'exécution de md5 rapport aux a.out produits dans chaque scénario indique qu'il s'agit du même résultat.

Mais, oui, g++ rend probablement votre monde plus simple.

3voto

whitman Points 2059

l'extension .rpc causes gcc pour compiler votre fichier en tant que fichier c++. Selon cette page, l'extension n'question: http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Overall-Options.html#index-file-name-suffix-71 Essayez de compiler le même fichier mais avec l' .c extension (ou sinon explicitement spécifier la langue avec -x c). Si vous exécutez nm test.o (d'où le test.o est le fichier de l'objet résultant de l'exécution de gcc -x c -c test.cpp -o test.o) vous remarquerez que ___gxx_personality_v0 n'est pas répertorié comme un symbole, alors que, si vous exécutez la même commande sur un fichier de l'objet généré avec gcc -c test.cpp -o test.o le ___gxx_personality_v0 est présent.

2voto

inket Points 622

Juste au cas où quelqu'un aurait le même problème que moi: l'extension de fichier devrait être un .c non pas un .C (gcc est sensible à la casse).

1voto

BadPirate Points 11614

Avait le même problème, mais une solution différente:

Le code C ++ de la bibliothèque statique est lié et référencé par un fichier .m. Renommer le fichier .m en .mm a résolu le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X