如何解决关于 ABI 的问题
我已经了解(至少我这么认为)主要的 ABI 概念,但仍然想澄清一些方面:
- 在示例中,我们使用 x86-64 Linux 系统编译 C++ 源代码。 C++ 工具链将使用的完整 ABI 的真正实现是什么?根据{{3}}完整的 ABI 涵盖的内容,我对这样的结构是否正确?
- ABI 的处理器 ISA 部分包含在 x86-64 文档中。
- System V AMD64 ABI 描述的基本数据类型的大小、布局和对齐方式。
- 调用约定也取自 System V AMD64 ABI,并使用 Itanium C++ ABI 进行了扩展,以实现特定的 C++ 功能。
- 系统调用调用约定也来自 System V AMD64 ABI。
- 再次从 System V AMD64 ABI 输出二进制格式(在我们的例子中为 ELF)。
- 可以从多个不同的 ABI(如 System V 和 Itanium C++)以及不同的默认调用约定(即 cdecl)构建完整的 ABI,我是否正确?如果是真的,这样完整的ABI叫什么名字?它们是否在某处指定?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。