Chinaunix首页 | 论坛 | 博客
  • 博客访问: 615614
  • 博文数量: 486
  • 博客积分: 10125
  • 博客等级: 上将
  • 技术积分: 5842
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(486)

文章存档

2011年(52)

2010年(107)

2009年(289)

2008年(38)

我的朋友

分类: LINUX

2010-05-20 01:22:37

ubuntu下编译gcc4.0.2 (转)
2008-07-29 09:38
由于项目需要,需要安装gcc4.0.2,其中的步骤参考gcc源代码里INSTALL目录下
的安装说明
1.从gcc.gnu.org上下载了gcc4.0.2
有这么几个文件:
gcc-4.0.2.tar.bz2
gcc-core-4.0.2.tar.bz2
gcc-g++-4.0.2.tar.bz2
gcc-java-4.0.2.tar.bz2
gcc-testsuite-4.0.2.tar.bz2

其中gcc-4.0.2.tar.bz2是包含了所有语言的包,包括(c,cpp,java,ada...),如
果你只需要编译其中的若干语言,下载gcc-core-4.0.2.tar.bz2gcc的核心代码,再下
载你需要的语言包就可以了。偶下了一个g++和java,还有一个
gcc-testsuite-4.0.2.tar.bz
2测试套件,不过偶下了没有用,节省编译时间呵:)

2.解压gcc-core-4.0.2.tar.bz2到目录gcc-4.0.2,把gcc-g++-4.0.2.tar.bz2也解
压到gcc-4.0.2目录里,放在一起编译。

3.这里要注意:我们把源代码解压的目录叫做$srcdir,强烈建议再新建一个目录
用作gcc编译的目录,叫做$objdir,这个目录不要是$srcdir的子目录,这里是gcc-bui
ld。

$ mkdir gcc-build
$ cd gcc-build

以下的操作都在$objdir里。

4.configure
这里我偷了一个懒,由于configure需要编译参数,偶参考了一
下系统自带gcc的参数,gcc -v 查看

$ gcc -v
使用内建 specs。
目标:i486-linux-gnu
配置为:../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,
treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/
usr/lib --without-included-gettext --enable-threads=posix --enable-nls -
-program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable
-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with
-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --d
isable-werror --with-tune=pentium4 --enable-checking=release i486-linux-
gnu
线程模型:posix
gcc 版本 4.0.3 (Ubuntu 4.0.3-1ubuntu5)


由于gcc不带uninstal功能,为了便于删除,把gcc安装在自己定义的目录下,这样
把目录删除就可以删除gcc了。
新建目录 /usr/local/gcc-4.0.2,把它叫做$installdir

根据刚才gcc的参数,适当修改,我只需要g++,把关于java的参数都删掉了,进入
$objdir
$srcdir/configure --prefix=$installdir --enable-languages=c,c++ --enab
le-shared --with-system-zlib --without-included-gettext --enable-threads
=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable
-clocale=gnu --enable-libstdcxx-debug --enable-gtk-cario --enable-mffr -
-disable-werror --with-tune=pentium4 --enable-checking=release i486-linu
x-gnu

这步生成makefile等文件

5.编译
$make bootstrap
对源代码进行编译
在我P4 2.8G的机器上用了大约半个小时的时间

6.安装
$make install
安装gcc到$installdir下

最后,查看为了使gcc命令调用自己编译的gcc,到/usr/bin下面把gcc链接到自己
编译的gcc上面
$cd /usr/bin
$file gcc
gcc: symbolic link to `gcc-4.0'
$ln -fs $installdir/bin/gcc-4.0 gcc
$gcc -v
root@castalia:/usr/bin# gcc -v
使用内建 specs。
目标:i486-linux-gnu
配置为:/home/zhuj/temp/gcc-4.0.2/configure --prefix=/usr/local/gcc-4.0
.2/ --enable-languages=c,c++ --enable-shared --with-system-zlib --withou
t-included-gettext --enable-threads=posix --enable-nls --program-suffix=
-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug
--enable-java-awt=gtk-default --enable-gtk-cario --enable-mffr --disabl
e-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
线程模型:posix
gcc 版本 4.0.2

这样gcc就是我们自己编译的gcc了,如果需要系统原来的gcc,改变链接就ok了:)

ps:
呵呵 ,如果没有必要,当然不会从源代码编译
其实偶的一个项目需要一个开源软件,在linux平台上只有源代码,需要编译,而它
的readme里面指定要gcc4.0.2,偶试过,用4.0.0和4.1编译出来的都有问题,而
ubuntu的源里有一个4.0.3和3.x系列的gcc,偶不得已才为之,有的源代码对系统
条件是特别苛刻的,所以最好还是按照安装说明去安装,一开始偶就折腾了半天,
浪费了n宝贵的时间,呵呵,教训也是经验吧
阅读(982) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~