参考文章:
需要指出的是,gcc 3.3.1 不能直接编译成功,需要先编译 gcc 3.0 , 然后通过 gcc 3.0 再编译 gcc 3.3.1
原因是 sco 的 cc 编译器不能有效识别 long long 数据类型,造成编译失败。
闲话少说,进入正题。
源码下载:gcc.gnu.org、 。
安装前准备:
在SCO OpenServer 5.0.6下编译gcc-3.0不需要打操作系统补丁。如打了OSS646C后编译过程有可能出错。
编译 gcc 3.0 需要 gmake 3.8 及以上版本。
首先下载 gmake 3.8.x 源码,进行编译。
./configure --prefix=/usr/gnu < 你也可以指向其它的目录,俺习惯用这个目录>
# make & make install
# cd /usr/bin
# ln -sf /usr/gnu/bin/make gmake
编译 gcc 3.0:
step 1、进入 gcc 3.0 的源码目录,建立一个下级的子目录。
#mkdir objdir
step 2、在该子目录下进行编译前配置
# ../configure --prefix=/usr/tmp/gnu
step 3、编译安装
# gmake bootstrap & gmake install
编译安装 gcc 3.3.1
step 1、设置编译工具环境
GCC_HOME=/usr/tmp/gnu
PATH=${GCC_HOME}/bin:${PATH}
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GCC_HOME}/lib
export GCC_HOME PATH LD_LIBRARY_PATH
step 2、进入 gcc 3.3.1 的源码目录,建立一个下级的子目录。
#mkdir objdir
step3、进行编译前的配置
# ../configure --prefix=/usr/gnu < 你也可以指向其它的目录,俺习惯用这个目录>
step 4、编译安装
# gmake bootstrap & gmake install
编译安装 m4:
step 1、进入 m4 目录,建立配置信息
# ./configure --prefix=/usr/gnu
step 2、编译安装
# gmake & gmake install
( 注意:需要使用 gcc 编译器,设置方法同前面,不重复叙述,能使用的最高版本是 1.4.2)
编译安装 bison:
step 1、进入 bison 目录,建立配置信息
# ./configure --prefix=/usr/gnu
step 2、编译安装
# gmake & gmake install
( 注意:需要使用 gcc 编译器,设置方法同前面,不重复叙述,能使用的最高版本是 2.0)
编译安装 binutils:
step 1、进入 binutils 目录,建立配置信息
# ./configure --prefix=/usr/gnu
step 2、编译安装
# gmake & gmake install
( 注意:需要使用 gcc 编译器,设置方法同前面,不重复叙述,能使用的最高版本是 2.16.1)
step 3、设置 ar 和 as
# cd /usr/gnu/bin
# mv as as#
# ln -sf /bin/as as
# ln -sf as# gas
# cd /usr/gnu/bin
# mv ar ar#
# ln -sf /bin/ar ar
# ln -sf ar# gar
-belf和-bcoff的兼容:
在SCO平台下编译的程序有时需要使用elf或coff格式,这一功能是通过-belf和-bcoff编译选项来控制的。
至迟从gcc-2.95.x起,在gcc官方文档中都会有这样一段关于SCO平台的声明(详见Host/Target specific
installation notes for GCC):
Unlike earlier versions of GCC, the ability to generate COFF with this target is no longer
provided.
因此,不要指望gcc能在SCO下生成coff格式的二进制码。更糟的是gcc在SCO OpenServer下运行时如果
加上-belf或-bcoff选项会报以下的错误:
gcc: installation problem, cannot exec `cc1': No such file or directory
并由此而导致一些软件包的配置和编译出错。
网上有许多关于这方面的提问,但很少有人回答。其实解决的办法很简单:
1. 以root用户登录,进入/usr/gnu/lib/gcc-lib
2. ln -sf i386-pc-sco3.2v5.0.6 elf
ln -sf i386-pc-sco3.2v5.0.6 coff
ln -sf i386-pc-sco3.2v5.0.6 elf-gcc-3.3.1
ln -sf i386-pc-sco3.2v5.0.6 coff-gcc-3.3.1
3. 进入/usr/gnu/bin 目录
ln -sf i386-pc-sco3.2v5.0.6-gcc-3.3.1 elf-gcc-3.3.1
ln -sf i386-pc-sco3.2v5.0.6-gcc-3.3.1 coff-gcc-3.3.1
4. 进入/usr/gnu 目录
ln -sf i386-pc-sco3.2v5.0.6 elf-gcc-3.3.1
ln -sf i386-pc-sco3.2v5.0.6 coff-gcc-3.3.1
完成上面的操作后,就可以正常使用-b选项了。
当然,这样做并不能生成elf格式或coff格式的二进制码(在使用-belf和-bcoff时生成的代码完全相同),
而是在使用了-b选项时不至于出错。
此方法也可用于gcc-2.95.x以及其它版本。
阅读(1692) | 评论(0) | 转发(0) |