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

7 篇文章 0 订阅
链接工具命名方式为:
    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:剥掉目标文件的所有的符号信息


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: arm-none-linux-gnueabi-gcc 4.8.3 是一个用于编译运行在 ARM 架构的 Linux 系统上的交叉编译器。 gcc 是 GNU 编译器套件中的一个重要组件,它用于编译多种编程语言,包括 C、C++ 和 Fortran。arm-none-linux-gnueabi-gcc 是 gcc 的特定版本,用于交叉编译 ARM 架构上的应用程序。交叉编译是指在一种操作系统上生成适用于另一种操作系统或硬件平台上运行的可执行文件。 在 arm-none-linux-gnueabi-gcc 中,"arm" 表示该编译器是为 ARM 架构提供支持的,"none" 表示该编译器不针对特定的操作系统,"linux" 表示该编译器用于编译 Linux 操作系统上的应用程序,"gnueabi" 表示该编译器使用 GNU 工具和 ELF 文件格式来生成应用程序。 版本号 4.8.3 表示该编译器的主要版本号是 4,次要版本号是 8,修订版本号是 3。版本号的升级通常意味着增加了新的功能、修复了已知的问题或提高了性能。 使用 arm-none-linux-gnueabi-gcc 4.8.3 编译应用程序时,我们可以通过相应的命令行选项指定编译目标以及其他所需的参数。由于它是一个交叉编译器,因此我们可以使用它在不同的操作系统上(如 Windows 或 macOS)编写并编译 ARM 架构的应用程序。编译完成后,生成的可执行文件可以在 ARM 架构的 Linux 系统上运行。 ### 回答2: arm-none-linux-gnueabi-gcc 4.8.3 是一个特定版本的 GCC 编译器,用于在 ARM 架构上编译运行 Linux 的应用程序。GCC 是 GNU Compiler Collection 的缩写,是一个开源的编译器套件,用于编写和运行 C、C++ 和其他支持的编程语言。 arm-none-linux-gnueabi 是 GCC 的一个目标后端选项,用于指定编译生成针对 ARM 架构的可执行程序。gnueabi 表示该编译器使用了 GNU C 库和一些 EABI(嵌入式应用二进制接口)的规范。 4.8.3 表示编译器的具体版本号。版本号通常包含主版本号、次版本号和修订号,用于标识编译器的重要更新和改进。具体版本的编译器可以选择更好的优化选项、修复已知的错误,并提供更好的兼容性和性能。 arm-none-linux-gnueabi-gcc 4.8.3 可能是为了满足某些特定的项目要求而开发的版本,也可能是该产品版本的标准推荐编译器。开发者可以根据项目需求选择合适的 GCC 版本,并使用相关命令进行编译、接、优化和调试。 通过使用 arm-none-linux-gnueabi-gcc 4.8.3,开发者可以在 ARM 架构上编写高效、可靠和兼容的 Linux 应用程序。这些应用程序可以在嵌入式设备、移动设备和其他 ARM 架构的系统上运行,为用户提供强大的功能和灵活性。编译器版本号的选择取决于开发者对编译器功能和性能的需求,以及与其他软件组件和库的兼容性要求。 ### 回答3: arm-none-linux-gnueabi-gcc 4.8.3 是一个GCC编译工具的版本,专门用于编译适用于ARM架构(arm-none-linux-gnueabi)的Linux操作系统。GCC是GNU编译器套件(GNU Compiler Collection)的缩写,它是一个广泛使用的开源编译器集合,支持多种编程语言。 arm-none-linux-gnueabi-gcc 4.8.3 的"arm-none-linux-gnueabi"部分表示目标平台为ARM架构的嵌入式设备,而"gnueabi"则表示使用了GNUGNU is Not Unix)工具,并且目标操作系统为Linux。因此,该编译器适用于开发基于ARM架构的嵌入式Linux应用程序。 版本号4.8.3表示该工具的具体版本为4.8.3,版本号的更新通常意味着对新语言标准、性能改进和错误修复的支持。因此,arm-none-linux-gnueabi-gcc 4.8.3可能具有一些特定的新功能和改进之前版本的问题。此外,版本号对于确保编译生成的代码与其他开发工具和库保持兼容性也非常重要。 总而言之,arm-none-linux-gnueabi-gcc 4.8.3 是一个适用于ARM架构的嵌入式系统的GNU编译器工具。它用于编译适用于ARM架构的Linux操作系统上的应用程序。版本号4.8.3表示该编译器的具体版本,版本号的更新通常带来新功能和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值