__gxx_personality_v0 在独立 C 程序中的作用是什么?
编译独立 C 程序期间出现持久链接器错误可能与 libstdc 中缺少 __gxx_personality_v0 符号的定义有关。虽然简单的定义可以解决问题,但了解其目的至关重要。
__gxx_personality_v0 是堆栈展开表的组成部分,如汇编输出所示。 Itanium C ABI 明确将其角色定义为 Personality Routine。
通过将 __gxx_personality_v0 声明为全局 NULL void 指针,可以有效解决该错误。然而,发生这种情况是因为没有抛出异常。如果发生异常,行为就会变得明显。
要避免此类问题,请考虑使用 -fno-exceptions 禁用异常,并使用 -fno-rtti 禁用 RTTI。或者,使用 g 而不是 gcc 链接将自动添加 -lstdc ,解决依赖关系。
以上是为什么我的独立 C 程序中缺少 `__gxx_personality_v0`,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!