编译器实现对 ABI 的依赖

Compiler Implementation Dependency on ABI

从这个问题 What is Application binary Interface 开始,ABI 涵盖了

等详细信息

我的问题是,

  1. 如果 ABI 定义了这些规则,那么编译器会生成 目标架构的二进制文件取决于架构 ABI??? 例如ARM的编译器必须遵循ARM eabi???
  2. 谁设计了这些 ABI???供应商、架构设计师(核心)、编译器设计师???

编译器只是一个类似于图像处理程序的程序。您有一个输入和一个输出,在这两种情况下,它们都必须符合某些标准(语言、文件格式)。但是你怎么做取决于你。对于编译器的情况,您只需要编写可在指令集定义的目标平台上运行的代码,而对于理智的编译器,您可以选择或创建适用于该语言的调用约定,但这取决于您。