v1.17, 28 February 1996
--------------------------------------------------------------------------------
本文闡述安裝GNU C編譯器和程式館的方法,同時概觀地說明程式的編譯、連結、執行、除錯的過程以及可能面臨的諸多問題。寫作的參考資料泰半來自於Mitch D'Souza先生所收集的GCC-FAQ;而另一個來源是ELF-HOWTO。此份HOWTO可以說已代替了GCC-FAQ,而且即將要永久替代ELF-HOWTO了。此乃GCC-HOWTO第一份公開發行的版本(不須理會版本序號;那是RCS的傑作),有任何指正與建議的,本人都很歡迎。
--------------------------------------------------------------------------------
- 這份譯文為Linux document projects(LDP)中文翻譯計畫系列之一。目前之網址為
http://www.linux.org.tw/CLDP/,歡迎各位網友踴躍投入此一計畫。
- 我並沒有完全按照原文逐字翻譯。為了力求譯文通暢可讀,我會稍稍的重組一部份的文字,加油添醋,或是精簡原文;這樣做的話,可以彌補中英文間語法結構的差異性,且語氣可以貫通無礙。
- 一些關鍵字與專業詞匯等,會附加上原文單字。
- 遇有轉譯困難,唯原文常見的字匯如
bugs、shadow password、padding、image之類的,則保留原文不變。若閣下對這些字匯有適當譯辭的,請不吝指教。
- 內文中若遇有"[譯者注:**]"之標記,則為本人額外之注解。
- 對這篇譯文有任何建議與疑問的,請email至frank63@ms5.hinet.net。
WWW Home Page: http://linux.ntcic.edu.tw/~jsfrank/。
- 此中譯文件之翻譯權已取得英籍之原作者Daniel Barlow 先生之同意;另,陳建勛先生保有此份中譯版文件所有的權利,你可以任意的拷貝,以各種媒體散布這份中譯文件,唯此節補充說明需原封不動附上,且不可任意更動譯文。
- v0.1版的譯文相當粗糙,連文句的語法結構都嫌太過於鬆散,v0.2版針對中文的用字習慣來修正,並將上一版譯的不妥當的地方修正過來,例如either這個字,英國人常把either當名詞用,指兩者中任意一個;這份HOWTO就充份反應出這個用字習性,跟美語有基本上的差異。
- 文中有幾句話沒有譯出來,一方面是看不懂,另方面是直譯也譯不出來,所以只好保留原文了,要是閣下有新的領悟的,無論如何請告訴我。
- v0.1版翻譯起始日期為:11/7/97;截止日期為:11/19/97。
- v0.2版修正起始日期:5/13/98;截止日期為:6/3/98。
目前Linux的發展正波濤洶湧的進行。簡單一點講,Linux有兩種執行檔的格式可用,取決於你的系統是怎麼整合起來的;你的Linux應該是其中一種吧!閱讀這份文件,可以幫助你□清執行檔的類別。
要如何區別呢?執行公用程式‘file’(例如,file /bin/bash)就對了。就ELF的程式而言,螢幕上顯示出來的訊息會含有ELF的字眼;如果說是a.out的,訊息內會箝有
Linux/i386的字樣。
ELF與a.out格式的差異之處會在後續的章節中討論(很廣泛喔!)。ELF是比較新的格式,一般而言,接受的程度較佳。
版權說明與合法的行逕規定,就擺在這份文件的尾端。除此之外,我還有一些不得不提醒你的話要講。就算你□沒事幹,也不要在Usenet上丟一些呆瓜問的問題;還有,不要老以為自己C語言的功力深厚,專門發表一些不是bugs的bugs出來丟人現眼,這不就等於告訴別人你不學無術,在關老爺面前耍大刀了嗎?所以說自以為是的英雄主義是得不償失的。
如果你現在讀的是Postscript、dvi或是html格式,那麼你所看到的字型變化就會比只讀純文字格式的人多一些。特別是檔案名稱、命令、命令的輸出與摘錄出來的原始碼等,統統都是打字機的字型。這樣做的話,對於某些需要強調的‘變數’還有那些沒有固定結果的□例而言,就可以達到強調的效果了。
讀這份文件的同時,你也會得到一套蠻有用的索引。假若是dvi、 postscript之類的版本,索引的數字就是章節(section)的編號;如果是HTML的話,這些數字會按順序排列,你可以用滑鼠左鍵去連結相對的索引內容;如果你看的是純文字版本的話,
數字就只是數字,沒別的含意;建議你趕快升級為妙哩!
我用的shell是Bourne shell(不是C shell),舉的例子自然是Bourne shell的語法。如果你用的是C
shell的話,設定環境變數的語法會像下面這樣:
% setenv FOO bar
要是用Bourne shell的話,我會這樣子寫:
$ FOO=bar; export FOO
如果提示符號顯示的是井字符號#而不是錢字符號 $的話,很有可能這個命令是只適用於root而已。當然啦,要是你試了這些□例,結果弄得你的系統發生災變,我可是一點責任也不會負的喔!祝好運!:-)
11/8/97譯. 5/13/98修訂
(http://www.fanqiang.com)