Chinaunix首页 | 论坛 | 博客

TS

  • 博客访问: 218690
  • 博文数量: 67
  • 博客积分: 2335
  • 博客等级: 大尉
  • 技术积分: 682
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-18 14:59
文章分类

全部博文(67)

文章存档

2017年(1)

2016年(1)

2014年(1)

2013年(3)

2012年(3)

2011年(8)

2010年(24)

2009年(13)

2008年(6)

2007年(7)

我的朋友

分类: LINUX

2007-02-26 15:22:42

安装 GCC

如果你把这个包缺省的优化参数(包括 -march-mcpu 参数)改变的话,它会有些不正常的表现。因此,如果你定义了任何优化参数的话,比如 CFLAGSCXXFLAGS ,我们劝你在编译时 unset 或修改它们。

GCC 的安装指南推荐用一个新建的目录来编译它,而不是在源码目录中:

mkdir -v ../gcc-build
cd ../gcc-build

为编译 GCC 作准备:

../gcc-3.4.3/configure --prefix=/tools \
--libexecdir=/tools/lib --with-local-prefix=/tools \
--disable-nls --enable-shared --enable-languages=c

这些配置参数的意思是:

--with-local-prefix=/tools

这个参数的目的是把 /usr/local/include 目录从 gcc 的包含文件搜索路径里删除。这并不是绝对必要,但我们想尽量减小宿主系统的影响,所以才这样做。

--enable-shared

这个参数咋一看有点违反直觉。但只有加上它,才能编译出 libgcc_s.so.1libgcc_eh.a 。Glibc(下一个软件包)的配置脚本只有在找到 libgcc_eh.a 时才能确保产生正确的结果。

--enable-languages=c

只编译 GCC 软件包中的 C 编译器。我们在本章里不需要其它编译器。

接下来编译它:

make bootstrap

参数的意思是:

bootstrap

使用这个参数的目的不仅仅是编译 GCC ,而是重复编译它几次。它用第一次编译生成的程序来第二次编译自己,然后又用第二次编译生成的程序来第三次编译自己,最后比较第二次和第三次编译的结果,以确保编译器能毫无差错的编译自身,这通常表明编译是正确的。

编译现在完成了,通常我们会在这里运行测试套件,但是正如前面说过的,测试套件目前尚未安装,而且在这里运行测试没什么用处,因为第一遍安装的程序很快就会被第二遍的程序所覆盖。

安装软件包:

make install

最后,我们创建一个必要的符号连接。因为许多程序和脚本试图运行 cc 而不是 gcc ,这样做是为了让程序能在多种 Unix 平台上运行,并保持一致性。并不是每个人都安装 GNU C 编译器。只运行 cc 而不是 gcc 可以把选择 C 编译器的自由留给系统管理员,我们这里将指向 gcc

ln -vs gcc /tools/bin/cc
阅读(1022) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~