命名格式:
arch[-vendor][-os]-abi
arch:CPU的架构
vendor:工具链的供应商
os: 目标上运行的操作系统,不同的操作系统对应着不同的C库,例如 newlib、glibc,、crt0等等。在程序的连接阶段将连接这些不同的C库。
abi: 指定应用程序的二级制文件接口规定,确保不同的编译链编译的代码能够兼容。比如说,ARM EABI是一种由ARM公司建立的标准,允许一种工具链连接其他工具链生成的目标文件。
举例:
arm-none-eabi CPU为ARM架构,没有供应商,编译的程序不用于操作系统,编译二进制接口是ARM EABI。常用于用于编译ARM架构的裸机系统(包括linux的 boot、kernel)。
arm-none-linux-gnueabi CPU为ARM架构,没有供应商,编译的程序运行在Linux操作系统,编译二进制接口是 GNU EABI。也就是说用于以ARM架构为基础的Linux操作系统上,常用于编译ARM架构的u-boot、linux内核、linux应用等。
arm-eabi 安卓系统的ARM编译器
时间: 2024-11-03 21:56:07