安装 GNU CC
===========
本文为gcc installation guide之中译本,版权所有,译者允许本文在网际
网路上作免费之流传、复制,然除经译者允许外,禁止任何商业使用。
译者: 工技资管所 陈振宇 ranma@hunt.cs.ntit.edu.tw
交大资管所 宋振华 chsong@iim.nctu.edu.tw
如有任何疏失、错漏,欢迎指正 7/1/1997
这是一份在Unix系统上安装GNU CC的程序,VMS系统的使用者请看
*注解:VMS 安装。在这一节中,我们假设编译的动作是在和
原始档案相同的目录下执行;如果希望在其他目录下执行编译动
作,请看 *注解:其他目录。
在MS-DOS下直接安装 GNU CC 是不可行的,使用 DOS 下的任何
编译器皆无法成功的编译 GNU CC,除非你使用 GNU CC 本身。欲
在 MS-DOS 下安装 GNU CC,你必需取得已完全编译完成的套件:DJGPP。
DJGPP 中含有机器码档案以及原始程式档,并且还包含了所有必需的
编译工具及函式库。
1.如果你是在另外一部机器上,在同一目录下先完成了GNU CC的
编译,执行 "make distclean" 来删除一些可能无用的档案。
其中一个被删除的档案叫做 "Makefile";如果 "make distclean"
回应 Makefile 不存在(not exist)的讯息,那可能表示这个目
录已经被适当的清理完毕。
2.在 System V Release 4 系统上,请确定在路径 "PATH" 设定中,
"/usr/bin" 在 "/usr/ucb" 之前。因为 "/usr/ucb" 中的 cc 使用了
有错误的函式库。
3.你可以执行 "configure" 这支程式来设定 host machine、build machine
、及 target machine。
所谓的 "build machine" 指的是你目前正在使用的机器;而
"host machine" 则是你期望编译後所产生的编译器工作的
机器;最後 "target machine" 则是你期望这个编译器
(正在做编译的那个)产生的目的码的主机。(一般而言,
前两者是相同的)。
如果你正在建立一的产生它自己执行的机器的目的码的编译器
(native compiler),一般而言,不需要在 "configure" 作
任何的设定;它将以目前正在使用的机器作为 host、build 及
target machine。所以当你制作 native compiler 的时候,不需
作任何设定。除非 "configure" 无法指出你的系统组态或是它猜
错了。
这样的情况下,用选项 --build 指定 build machine 的
"configuration name"; host 及 target machine 将预设和 build
machine相同。(若你正在建立的是一个交互编译器,请看
*注解:交互编译器)
底下是一个例子:
./configure --build=sparc-sun-sunos4.1
建置名 (configuration name) 可能是一个标准的形式或者是标准形
式的缩写。
一个完整的建置名有由 "-" 号分开的三个部份。大概是:
"CPU名称-厂商名称-系统名称"(每一个部份可含有自己的
"-" 号,configure 这个程式会自行分辨之)。举例来说:
"m68k-sun-sunos4.1" 是指 Sun 3。
你也可以用别名取代部份的建置名。例如: `sun3' 就代表了 `m68k-sun'
,`sun3-sunos4.1' 也是另一种 Sun 3 的表示方法。你也可以简单点用
`sun3-sunos',因为这边假设 SunOS 的版本预设为 4. `sun3-bsd' 也可
以,因为 `configure' 知道 SunOS 是 Sun 3 上唯一的 BSD 变种。
你可以在各种系统型态後面注明版本号码,及 CPU 型号。在大部份的例子
当中,版本是没用的,而且会被忽略掉。所以如果你知道的话,最好也把
号码加上去。(ranma 注:这段原文怪怪的)
关於所支援的建置名与建置的相关注解,请参考 *注解:建置。在继续安装
GNU CC 之前,你最好看一下那份注解。
底下有四种附加的选项可以让你分别指定不同的硬体与软体建置:
`--with-gnu-as', `with-gnu-ld`, `--with-stabs' 及 `--nfp'。
`--with-gnu-as'
如果你想要将 GNU CC 拿来跟 GNU 组译器 (GNU assembler)
并用的话,你可以在执行 `configure' 时加上 `--with-gnu-as' 这
个选项。
使用这个选项并不会安装 GAS。 它只是将 GNU CC 的输出修改成可以
和 GAS 并用而已。要不要安装 GAS 由你自己决定。
相反地,如果你 *不要* 使用 GAS 而且在建构 GNU CC 时不注明
`--with-gnu-as' 的话,你也要自己决定是不是要安装 GAS。 GNU CC
会在各个目录□找 `as' 这个程式,如果它找到了 GAS 的话,它会用
GAS。如果你不确定 GNU CC 到底是找到哪一个组译器来用的话,在
执行 gcc 时加上 `-v' 这个选项。
会因为你是否使用 GAS 而产生不同