首页 > 后端开发 > C++ > 正文

为什么我的独立 C 程序中缺少 `__gxx_personality_v0`,如何修复它?

Mary-Kate Olsen
发布: 2024-11-18 04:30:02
原创
319 人浏览过

Why is `__gxx_personality_v0` Missing in My Free-Standing C   Program, and How Can I Fix It?

__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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板