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)