Bu, bir işletim sistemi geliştirme sitesinden gelen ikinci el bir soru, ancak hiçbir yerde düzgün bir açıklama bulamadığım için beni meraklandırdı.
Gcc kullanarak bağımsız bir C ++ programını derlerken ve bağlarken bazen bunun gibi bir bağlayıcı hatası oluşur:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
Bunun nedeni görünüşe göre bu sembolün, bağımsız bir ortamda eksik olan libstdc ++ 'da tanımlanmış olmasıdır. Sorunu çözmek basitçe bu sembolü bir yerde tanımlamayı gerektirir:
void *__gxx_personality_v0;
Hangisi güzel, ama sadece sihirli bir şekilde çalışan şeyleri sevmiyorum ... Yani soru şu, bu sembolün amacı nedir?
-fno-exceptions
.CPPFLAGS += -fno-exceptions
Makefile dosyama ekledim ve bu hatayı çözdü.