GNU binutils是一组二进制工具集。Binutils是GNU工具之一,它包括连接器、汇编器和其他用于目标文件和档案的工具,它是二进制代码的处理维护工具。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip.
ar用于建立、修改、提取档案文件(archive)
objcopy可以将一种格式的目标文件转化为另外一种格式的目标文件
file命令用来判别文件类型
objdump用来显示目标文件的信息
gprof被用来测量程序的性能
nm用来列出目标文件中的符号,可以帮助程序员定位和分析执行程序和目标文件中的符号信息和它的属性
交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils、gcc和glibc 3个部分组成。建立交叉编译工具链是一个相当复杂的过程,如果不想自己经历复杂繁琐的编译过程,网上有一些编译好的可用的交叉编译工具链可以下载,但就以学习为目的来说读者有必要学习自己制作一个交叉编译工具链。步骤如下:
构建交叉编译器的第一个步骤就是确定目标平台。本章的目的是讲述建立基于ARM平台的交叉工具链,所以目标平台名为arm-linux-gnu。
方法一 分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。方法二 通过Crosstool脚本工具来实现一次编译生成交叉编译工具链。方法三 直接通过网上(ftp.arm.kernel.org.uk)下载已经制作好的交叉编译工具链(没有灵活性,所以构建所用的库以及编译器的版本也许并不适合你要编译的程序)。
编译器需要通过系统内核的头文件来获得目标平台所支持的系统函数调用所需要的信息。对于Linux内核,最好的方法是下载一个合适的内核,然后复制获得头文件。需要对内核做一个基本的配置来生成正确的头文件;不过,不需要编译内核。
Crosstool是一组脚本工具集,可构建和测试不同版本的gcc和glibc,用于那些支持glibc的体系结构。
来自:构建ARM Linux交叉编译工具链 详解(http://linux.chinaunix.net/techdoc/develop/2008/04/11/991424.shtml)