这是一个来自操作系统开发网站的二手问题,但由于我无法在任何地方找到合适的解释,它引起了我的好奇心。
使用gcc编译和链接一个自由站C++程序时,有时会出现以下链接器错误:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
这显然是因为该符号是在libstdc++中定义的,而在无操作系统环境中该库会缺失。解决问题只需要在某处定义该符号:
void *__gxx_personality_v0;
这很不错,但我不喜欢那些只是神奇地运作的东西...所以问题是,这个符号的目的是什么?
msys2 msys
版本的 clang++,我尝试在 main.cpp 中定义这个符号,但它并没有解决问题 - 它导致了另一个错误:clang++: error: clang frontend command failed due to signal (use -v to see invocation)
。 - AJM