这份文件是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的archive manpages上找到系统呼叫(system call)(第2节)与libc函数(function)(第3节)的文件说明。
解答有二:
(a)你可以在
ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/的网站上找到
正式的Linux GCC发行系统(distribution),而且是已经编译好的可执行档。当我在写这份文件时,2.7.2(gcc-2.7.2.bin.tar.gz
)是最新的版本。
(b)自由软件基金会(Free Software Foundation)所发布的GCC最新原始码可以从网站
GNU archives上取得。没有必要非得与上述的版本一致才行,不过这个版本的确是目前最新的。Linux GCC的维护网友(maintainers)让你可以很轻松的自行编译这个最新的版本。configure
命令稿(script)会帮你自动设定好所有该做的事情。建议你有空不妨到
tsx-11看看,说不定会有修正的版本是你会想要用的。
如果想要编写出一些有用的软件(不是我啰唆,还是有不少没啥用途的软件在网路上四处流窜。),下面这一小节所谈的也是你需要的:
该选哪一套程序馆是取决于(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)与标头档(针对C语言与数学程序馆)。
libc-5.2.18.tar.gz
---libc-5.2.18.bin.tar.gz的原始码。这个文档你也需要,因为.bin.
套件(package)含有必须的标头档。如果此时你正犹豫不决,不晓得是老身亲自下海,动手编译C程序库比较好;还是直接用人家编译好的二进位档(binaries)就可以了。有这种困扰的人,来,看我的嘴形:用人家编译好的二进位档不就解决了嘛!只有在你想要NYS或是shadow password的情况下,才需要自己的手来推动摇篮。
libc-4.7.5.bin.tar.gz
--- 这个文档是a.out的共享程序库(shared library images)与静态程序库,用途是为了与前述的libc 5套件共存共荣而设计的,不过除非你想要继续使用a.out的程序或是继续发展a.out的程序,不然的话,是不需要它的。
到目前为止,与之前所谈的都一样,从网站
tsx-11上,就可以找到这些工具程序。目前的版本是binutils-2.6.0.2.bin.tar.gz
。
需要注意的是binutils只适用于ELF,而且目前libc的版本也都是属于ELF的;当然啦,习惯a.out的人如果有个ELF的libc与a.out的libc联合起来一起使用,这对他们来讲是再好不过的美事了。不可否认的,C程序馆的发展正以坚决的脚步迈向ELF的格式,除非你真的有很好的理由,需要a.out的东东,不然啊,大家都会鼓励你勇于突破,趁早加入锐不可挡的大潮流。
11/9/97译