安装 Binutils-2.13

估计编译时间:		2.05 SBU
估计所需硬盘空间:     160 MB

Binutils 的安装

如果你把这个包缺省的优化参数(包括 -march 和 -mcpu参数)改变的话,它会有很不良的表现。最好不要优化这个包。因此,如果你定义了任何优化参数的话,比如CFLAGS 和 CXXFLAGS,我们劝你在编译binutils时unset或修改它们。警告过了哦!

用下列命令安装 Binutils:

mkdir ../binutils-build &&
cd ../binutils-build &&
../binutils-2.13/configure --prefix=$LFS/static --disable-nls &&
make LDFLAGS=-all-static &&
make install

命令解释

mkdir ../binutils-build: Binutils的安装指南推荐用一个新建的目录来编译它,而不是在源码目录中。所以,我们就创建了一个 binutils-build目录并从那里开始编译。

--disable-nls: 这个参数禁止了国际化(又叫i18n)。我们的静态程序不需要国际化的特性,并且在静态链接时nls常常引起错误。

LDFLAGS=-all-static: 把变量 LDFLAGS 设置成 -all-static 使 binutils 被静态链接。

Binutils的内容

最后检查于version 2.12.1.

包含的程序

addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip

具体说明

addr2line

addr2line把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。

ar

建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。

as

as 主要用来编译GNU C编译器gcc输出的汇编文件,产生的输出文件由连接器ld连接。

gasp

gasp是一个汇编语言宏预处理器

gprof

gprof显示程序调用段各种数据。

ld

ld把一些目标和归档文件结合在一起,重定位数据,并链接符号引用。通常,建立一个新编译程序的最后一步就是调用ld。

nm

nm 列出目标文件中的符号。

objcopy

objcopy 把一个目标文件中的内容复制到另一个目标文件。objcopy使用GNU BFD库来读写目标文件。源文件和目的文件可以是不同的格式。

objdump

objdump显示一个或者更多目标文件的信息。使用选项来控制其显示的信息。

ranlib

ranlib产生归档文件索引,并将其保存到这个归档文件中

readelf

readelf 显示elf格式的可执行文件的信息。

size

size 列出目标文件每一段的大小以及总体的大小。默认情况下,对于每个目标文件或者一个归档文件中的每个模块只产生一行输出。

strings

打印某个文件的可打印字符串,这些字符串最少4个字符长,也可以使用选项-n设置字符串的最小长度。默认情况下,它只打印目标文件初始化和可加载段中的可打印字符;对于其它类型的文件它打印整个文件的可打印字符。这个程序对于了解非文本文件的内容很有帮助。

strings is mainly useful for determining the contents of non-text files.

strip

strip 丢弃某些目标文件中的全部或者特定符号。这些目标文件中可以包括归档文件。它至少需要一个目标文件名作为参数。strip直接修改参数指定的文件,不为修改后的文件重新命名。

包含的库文件

libbfd.[a,so] and libopcodes.[a,so]

具体说明

libbfd

二进制文件描述信息块

libopcodes

libopcodes 用来处理opcodes的库, 在生成一些应用程序的时候也会用到它, 比如objdump.Opcodes是以文本格式可阅读的处理器操作指令.

安装Binutils依赖于

最后检查于 version 2.11.2.

Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: ar, as, ld, nm, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch
Flex: flex
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: ldconfig
Grep: egrep, fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, true, uname
Texinfo: install-info, makeinfo
Textutils: cat, sort, tr, uniq