Chinaunix首页 | 论坛 | 博客
  • 博客访问: 789180
  • 博文数量: 130
  • 博客积分: 3477
  • 博客等级: 中校
  • 技术积分: 1339
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-30 21:53
文章分类

全部博文(130)

文章存档

2024年(1)

2023年(10)

2022年(4)

2021年(10)

2020年(9)

2018年(1)

2017年(1)

2014年(4)

2013年(3)

2012年(12)

2011年(24)

2010年(2)

2009年(8)

2008年(6)

2007年(34)

2006年(1)

分类: C/C++

2011-10-31 00:48:17

参考文章:

需要指出的是,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以及其它版本。



阅读(1611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~