首页 > 技术文章 > GCC交叉编译链命名

amanlikethis 2014-06-27 11:36 原文

命名格式: 

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编译器

 

参考资料:Lecture 3: Toolchains

推荐阅读