यह एक ओएस विकास साइट से एक दूसरे हाथ का सवाल है, लेकिन यह मुझे उत्सुक बना दिया क्योंकि मैं कहीं भी एक अच्छी व्याख्या नहीं पा सका।
जब एक फ्री-सी-सी + प्रोग्राम को gcc का उपयोग करके संकलित और लिंक करना, कभी-कभी इस तरह एक लिंकर त्रुटि होती है:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
यह स्पष्ट रूप से है क्योंकि यह प्रतीक libstdc ++ में परिभाषित किया गया है, जो एक मुक्त वातावरण में गायब है। समस्या को ठीक करने के लिए बस इस प्रतीक को परिभाषित करने की आवश्यकता है:
void *__gxx_personality_v0;
जो अच्छा है, लेकिन मुझे ऐसी चीजें पसंद नहीं हैं जो सिर्फ जादुई रूप से काम करती हैं ... तो सवाल यह है कि इस प्रतीक का उद्देश्य क्या है?
-fno-exceptions
। मैंनेCPPFLAGS += -fno-exceptions
अपने मेकफाइल में जोड़ा , और उस त्रुटि को हल किया।