C'est une question de seconde main d'un site de développement de système d'exploitation, mais cela m'a rendu curieux car je ne trouvais nulle part une explication décente.
Lors de la compilation et de la liaison d'un programme C ++ autonome à l'aide de gcc, une erreur de l'éditeur de liens comme celle-ci se produit parfois:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
Ceci est apparemment dû au fait que ce symbole est défini dans libstdc ++, qui manque dans un environnement autonome. Résoudre le problème nécessite simplement de définir ce symbole quelque part:
void *__gxx_personality_v0;
Ce qui est bien, mais je n'aime pas les choses qui fonctionnent comme par magie ... Alors la question est, quel est le but de ce symbole?
-fno-exceptions
. J'ai ajoutéCPPFLAGS += -fno-exceptions
à mon makefile, et cela a résolu l'erreur.