這份文件是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譯