首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是ABI(应用程序二进制接口)?

什么是ABI(应用程序二进制接口)?
EN

Stack Overflow用户
提问于 2011-01-27 18:06:34
回答 3查看 9.3K关注 0票数 19

维基百科是这样说的:

在计算机软件中,应用程序二进制接口(ABI)描述应用程序(或任何类型的)程序与操作系统或其他应用程序之间的低级接口。

ABI介绍了一些细节,比如数据类型、大小和对齐方式;调用约定,它控制如何传递函数的参数以及如何检索返回值;系统调用号以及应用程序应该如何对操作系统进行系统调用;对于完整的操作系统ABI,还包括目标文件、程序库等的二进制格式。完整的ABI (如英特尔二进制兼容性标准(iBCS) )允许来自支持该ABI的操作系统的程序无需修改即可在任何其它此类系统上运行,前提是存在必要的共享库,并且满足类似的先决条件。

我认为ABI是一种约定或标准,编译器/链接器使用这种约定来生成目标代码。是那么回事吗?如果是这样的话,是谁制定了这些约定(公司或一些组织)?没有ABIs的时候是什么样子的?有没有我们可以参考的关于这些ABIs的文档?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4814977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档