|

楼主 |
发表于 2005-5-30 21:16:47
|
显示全部楼层
小二,五斤牛肉一壶酒!我们边吃边聊:)
剑法源于书法。无论是提挑顿挪,还是疾走偏锋,都要依存于手腕的连贯动作。书法的行云流水最忌断笔和残笔。灵活的手腕作为人和剑之间的连接,是一个剑客最懂得呵护的部位。否则人剑不能合一,剑就不能变成人的延伸的长臂。那么在GCC和glibc以及其他的程序之间,什么是“手腕”呢?这就是binutils!
装过LFS的朋友也许都知道Binutils是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。
在程序的编译过程中,经由编译器的编译与优化之后,其输入的就是程序的组合代码。这时就需要经由解释器将组合代码翻译成机器所能接受的机器代码,输出成.o的文件,而最后再由链接器将这些文件与所需的系统函数库和启动模块链接进来,从而生成一个完整的可执行程序。链接器在编译过程中扮演着十分重要的角色,但是它们都是在幕后工作。binutils主要包括这些命令工具:addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings 和 strip。其中as和ld是最主要的链接器,而其他是一些帮助我们管理生成档案的工具以及其他各种功能的工具。而它本身依赖于: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo。所以在Gentoo中编译新的binutils,我们也可以从这里看出个先后次序。当升级到GCC4时,我们应该先把GCC4编译完,然后用GCC4来编译glibc和binutils。 |
|