当前位置:操作系统 > Unix/Linux >>

SCOOpenServer下编译及使用GCC3.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/binPATH; 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以及其它版本。

  

上一个:solaris下quota机制对用户进行磁盘限额控制实践
下一个:FREEBSD5.4的系统安装与服务器配置手册(四)

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,