arm-eabi, arm-linux-androideabi, arm-linux-gnueabi, arm-none-linux-gnueabi工具链的区别

链接工具命名方式为:
    arch-vendor-os-abi , 即cpu构架, 供应商, 操作系统, abi类型
例如: 
1、arm-none-linux-gnueabi 
 	(ARM architecture, no vendor, linux OS, and the gnueabi ABI)
        用于编译ARM架构的u-boot、linux内核、linux应用等
2、arm-none-eabi 
        用于编译ARM架构的裸机系统(包括linux的 boot、kernel)
3、arm-eabi 
        Android ARM 编译器
所以标题中提到的工具链表示的含义是:
arm-eabi:  (ARM architecture and the EABI)
arm-linux-androideabi: (ARM architecture,  linux OS, and the androideabi ABI)
arm-linux-guneabi: (ARM architecture,  linux OS, and the gnueabi ABI)
arm-none-linux-gnueabi: (ARM architecture, no vendor, linux OS, and the gnueabi ABI)

工具链的工具通常有:

add2line:将你要找的地址转成文件和行号,它要使用 debug 信息。

ar:产生、修改和解开一个存档文件

asgnu的汇编器

c++filtC++  java 中有一种重载函数,所用的重载函数最后会被编译转化成汇编的标,c++filt 就是实现这种反向的转化,根据标号得到函数名

gprofgnu 汇编器预编译器

ldgnu 的连接器

nm:列出目标文件的符号和对应的地址

objcopy:将某种格式的目标文件转化成另外格式的目标文件

objdump:显示目标文件的信息

ranlib:为一个存档文件产生一个索引,并将这个索引存入存档文件中

readelf:显示 elf 格式的目标文件的信息

size:显示目标文件各个节的大小和目标文件的大小

strings:打印出目标文件中可以打印的字符串,有个默认的长度,为4

strip:剥掉目标文件的所有的符号信息


你可能感兴趣的:(ARM,linux)