会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 操作系统类 / SCO UNIX / SCO OpenServer下编译及使用GCC 3.0
SCO OpenServer下编译及使用GCC 3.0
2006-07-16          点击:
SCO OpenServer下编译及使用GCC 3.0
1. 说明

  本文档适用于在SCO 5.0.6下编译及使用gcc-3.0及gcc-3.0.x。同样的方法也可用于编译gcc-2.95.x、gcc-3.2.x、gcc-3.3。本文以gcc-3.0为例说明gcc的编译过程和使用中的部分注意点。

2. 源码的下载

  gcc-3.0的源码可以从gcc的官方网站(gcc.gnu.org)及镜像站点下载。下载后将源码包在SCO下解压、解包。本文中假设解包后的目录为/usr/test/gcc-3.0。

3. 编译前准备

3.1. 操作系统补丁

  在SCO OpenServer 5.0.6下编译gcc-3.0不需要打操作系统补丁。如打了OSS646C后编译过程有可能出错。

3.2. 安装GNU Make

  使用SCO开发环境自带的make编译gcc时会因为对Makefile中的某些语法无法解析而导致编译失败,因此需要以GNU Make来进行编译。

  首先,从GNU官方网站下载GNU Make的源码(目前的最高版本是3.80),在SCO下编译生成make执行码,然后用此执行码替换/bin/make。

4. 配置

  为了避免由于误操作破坏gcc的源码,一般将gcc的配置和编译在另外的目录下进行。

  在/usr/test下创建gcctmp目录。进入gcctmp目录,执行以下命令:

../gcc-3.0/configure --prefix=/usr/local/gcc-3.0

  prefix所表示的是gcc的安装目录。在不使用此参数时,缺省的安装目录是/usr/local。如果可能安装多个版本的gcc,最好将不同版本的gcc安装至不同的目录下。

  configure还有许多其他的编译选项,在配置前可以仔细阅读一下INSTALL目录下的文档,根据需要打开或关闭某些选项。

5. 编译

在gcctmp下执行

make bootstrap

由于gcc系统比较庞大,编译需要较长的时间。

6. 安装

在成功完成gcc的编译后,用su命令切换至root用户,执行

make install

将gcc安装至/usr/local/gcc-3.0目录下。

7. 安装后的验证

将gcc的安装路径加入执行路径:

PATH=/usr/local/gcc-3.0/bin:$PATH; export PATH

执行gcc -v,提示以下信息:

Reading specs from /usr/local/gcc-3.0/lib/gcc-lib/i386-pc-sco3.2v5.0.6/3.0/specs
Configured with: ../gcc-3.0/configure --prefix=/usr/local/gcc-3.0
Thread model: single
gcc version 3.0

就说明gcc已经编译、安装完成,可以用来进行程序的开发了。恭喜你!

8. -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/local/gcc-3.0/lib/gcc-lib

2. ln -s i386-pc-sco3.2v5.0.6 elf

ln -s i386-pc-sco3.2v5.0.6 coff

完成上面的操作后,就可以正常使用-b选项了。

当然,我们的目的不是为了生成elf格式或coff格式的二进制码(在使用-belf和-bcoff时生成的代码完全相同),而是在使用了-b选项时不至于出错。

此方法也可用于gcc-2.95.x以及其它版本。

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
IGENUS中的注册和找回密码功能 - 07-29 10:19 pm - 点击: 214
在RH9下安装Qmail+IGENUS+QmailAdmin - 07-29 10:15 pm - 点击: 763
如何在拨号环境下使用postfix - 07-08 12:52 pm - 点击: 157
中小规模POSTFIX邮件系统 - 07-08 12:50 pm - 点击: 679
postfix相关文件说明 - 07-06 02:42 pm - 点击: 367
Postfix配置文件main.cf中常用参数介绍 - 06-14 09:55 pm - 点击: 998
redhat9.0下igenus的安装过程 - 06-11 01:54 pm - 点击: 2789

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.