这份文件是Linux HOWTO系列之一.易言之,你可以在所有存放Linux HOWTO文件的网站上面找到它的芳踪,例 如http://sunsite.unc.edu/pub/linux/docs/HOWTO/.HTML格式的版本(可能会是较新的版本)可以从http://ftp.linux.org.uk/~barlow/howto/gcc-howto.html上面抓下来.
gcc正式的说明文件是附在发行的原始码(source distribution)内(往下看就有了!),里头有textinfo与.info
两种档案.要是你的网路连接速率够快,或者是有一片cdrom;不然的话,有高度的耐心也成,你可以自己把它untar,然後再把相对应的位元一一拷贝到/usr/info
的目录底下.假如你的条件与上述的不符,不妨到 tsx-11站上去找一找.不过,我想,没有必要老是惦记著最新的版本吧.
libc的文件说明有两种来源.一种是GNU libc,以.info的格式储存,除了stdio之外,其馀Linux libc的说明都相当详尽精确.另一种可以在Linux的archivemanpages 上找到系统呼叫(system call)(第2节)与libc函数(function)(第3节)的文件说明.
解答有二:
(a)你可以在ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/的网站上找到
正式的Linux GCC发行系统(distribution),且已编译好的(read-compiled)可执行档(in binary).当我在写这份文件时,2.7.2(gcc-2.7.2.bin.tar.gz
)是最新的版本.
(b)自由软体基金会(Free Software Foundation)所发布的GCC最新原始码可以从网站GNU archives上取得.没有必要非得与上述的版本一致才行,不过这个版本的确是目前最新的.Linux GCC的维护人士(maintainers)让你可以很轻松的自行编译这个最新的版本.configure
命令稿(script)会帮你自动建好(set it all up)所有该做的事.建议你有空不妨到tsx-11看看,说不定会有修正的版本(patches)是你会想要用的(apply).
如果想要编译出一些有用的东东(non-trivial)(不是我罗唆,还是有不少细琐的东东在哩!),下面一小节所谈的也是你要具备的:
在这儿你该选的是取决於(i)你的系统是ELF亦或是a.out的;(ii)你希望你的系 统变成哪一种?如果你是从libc 4升级到libc 5,那麽给你一个良心的建议,去看看ELF-HOWTO文件.你一定会问,在ELF文件的哪儿呢?嘿!嘿!不偏不倚,就差不多跟这份文件一样的位置.你可以在网站tsx-11上面找到你想要的.
libc-5.2.18.bin.tar.gz
--- ELF共享程式库(ELF shared library images),静态程式库(static libraries)与标头档(include files)(针对C语言与数学程式库的).
libc-5.2.18.tar.gz
---libc-5.2.18.bin.tar.gz的原始码.这两个档案你都需要,.bin.
套件(package)内含有标头档(header files).如果此时你正犹豫不决,不晓得是要老身亲自下海,动手编译C程式库;还是直接用编译好的二进位档(binaries)就可以了.有这种困扰的人,来,看我的嘴形:用人家编译好的二进位档不就解决了嘛.只有在你想要NYS或是shadow password的情况下,你才需要自己的手来推动摇篮.
libc-4.7.5.bin.tar.gz
--- 这个档案的内容是a.out的共享程式库(shared library images)与静态程式库.这个档案的用途是为了与前述的libc 5套件共存共荣(coexist)而设计的,不过除非你想要继续使用或者发展a.out格式的程式,不然的话,是不需要它的.
到目前为止,与之前所谈的都一样,从网站tsx-11上,就可以找到这些工具程式.目前的版本是binutils-2.6.0.2.bin.tar.gz
.
需注意的是binutils只适用於ELF格式,目前libc的版本也都是ELF的;当然啦, 习惯a.out的人如果有个ELF的libc与a.out的libc联合(in conjunction with)起来一起使用, 那对他们来讲是再好不过的美事了.不可否认的,C程式库的发展正以坚决的(emphatically)脚步迈向ELF格式,除非你真的有很好的理由,需要a.out的东东(things),不然啊,大家都会鼓励(encourage)你勇於突破,趁早加入锐不可挡的大潮流里.
11/9/97译