Это вопрос из вторых рук с сайта разработки ОС, но он вызвал у меня любопытство, так как я нигде не мог найти достойного объяснения.
При компиляции и компоновке автономной программы на C ++ с использованием gcc иногда возникает такая ошибка компоновщика:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
Очевидно, это связано с тем, что этот символ определен в libstdc ++, который отсутствует в отдельно стоящей среде. Для решения проблемы просто необходимо где-нибудь определить этот символ:
void *__gxx_personality_v0;
Что приятно, но мне не нравятся вещи, которые просто волшебно работают ... Итак, вопрос в том, какова цель этого символа?
-fno-exceptions
. Я добавилCPPFLAGS += -fno-exceptions
в свой make-файл, и это устранило ошибку.