Duplicate possible:
Symbole non défini ___gxx_personality_v0 sur le lien
J'ai un problème avec le programme suivant.
// fkt.cpp
#include "fkt.h"
int add2(int a, int b)
{
return a+b;
}
Et l'en-tête:
// fkt.h
int add2(int a, int b);
Maintenant, je compile ceci avec:
g++ -c fkt.cpp
Maintenant, je lance nm
et récupère:
00000000 T _Z6add2ii
U __gxx_personality_v0
Lorsque je veux utiliser la fonction où que je sois:
(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
Comment puis-je résoudre ce problème? (J'utilise bunt Linux.)
Si g++
donne toujours une erreur Essayez d'utiliser:
g++ file.c -lstdc++
Regardez ce post: Qu'est-ce que __gxx_personality_v0 pour?
Assure-toi -lstdc++
est à la fin de la commande. Si vous le placez au début (c’est-à-dire avant le fichier.c), vous pouvez toujours obtenir la même erreur.
On dirait que vous essayez de créer un lien avec votre fichier objet résultant avec gcc
au lieu de g++
:
Notez que les programmes utilisant des fichiers objets C++ doivent toujours être liés à g ++ afin de fournir les bibliothèques C++ appropriées. Tenter de lier un fichier objet C++ au compilateur C gcc provoquera des erreurs de "référence indéfinie" pour les fonctions de bibliothèque standard C++:
$ g++ -Wall -c hello.cc
$ gcc hello.o (should use g++)
hello.o: In function `main':
hello.o(.text+0x1b): undefined reference to `std::cout'
.....
hello.o(.eh_frame+0x11):
undefined reference to `__gxx_personality_v0'
Source: Introduction à GCC - pour le GNU compilateurs gcc et g ++