Next Previous Contents

2. 东东在哪儿?

2.1 GCC-HOWTO在哪儿?

这份文件是Linux HOWTO系列之一,换句话说,你可以在所有存放Linux HOWTO文件的网站上面找到她的芳踪,例如 http://sunsite.unc.edu/pub/linux/docs/HOWTO/。HTML的版本(可能会是较新的版本)可以从 http://ftp.linux.org.uk/~barlow/howto/gcc-howto.html上面抓下来。

2.2 GCC相关的资料又在哪儿?

标准的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节)的文件说明。

2.3 GCC

解答有二:

(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看看,说不定会有修正的版本是你会想要用的。

如果想要编写出一些有用的软体(不是我罗唆,还是有不少没啥用途的软体在网路上四处流窜。),下面这一小节所谈的也是你需要的:

2.4 C程式馆与标头档

该选哪一套程式馆是取决於(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的程式,不然的话,是不需要它的。

2.5 有关联的工具 (as, ld, ar, strings etc)

到目前为止,与之前所谈的都一样,从网站 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译


Next Previous Contents