我不明白为什么 ABI 是开发用户空间应用程序的重要上下文。操作系统的系统调用集是否被视为 ABI?但如果是这样,那么关于系统调用的所有复杂性不都封装在标准库中了吗?
那么ABI 兼容性是否仅与在不同平台上运行静态链接的应用程序相关,因为系统调用将嵌入到二进制文件中?
最佳答案
安ABI定义了一组系统通用的对齐方式、调用约定和数据类型。如果您要进行任何类型的动态链接,这会使 ABI 变得非常重要;因为没有它,一个应用程序的代码无法调用另一个应用程序提供的代码。
所以,不。 ABI 兼容性与所有动态链接相关(与静态链接无关)。
值得再次强调的是,系统的 ABI 会影响应用程序间的工作以及应用程序到操作系统的工作。
关于c++ - 为什么应用程序二进制接口(interface)对编程很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032502/