在ubuntu11.1上编译gcc3.3.6

在ubuntu11.1上编译gcc3.3.6

1.概述

  由于使用ubuntu11.1自带的gcc4.6编译crosstool-0.43时显示gcc版本太旧(其实是太新),决定更换gcc版本。

  首先更换到了gcc4.2.2,但编译crosstool-0.43时仍然显示gcc版本太旧,决定更换gcc3.3.6 。

  本文档记录在ubuntu11.1上安装gcc4.2.2以及使用4.2.2编译gcc3.3.6的过程。

 

2.在ubuntu上安装gcc4.2.2

  由于gcc4.2已经不再保存在ubuntu的软件源中,所以需要先添加一个包含gcc4.2的软件源。

sudo gedit /etc/apt/sources.list

  在最后一行添加

##Added for GCC
deb http://mirror.pnl.gov/ubuntu/ hardy-updates main universe

  直接通过命令下载安装gcc4.2

sudo apt-get install gcc-4.2

  安装完成后编译hello_world.c测试,产生了一堆错误。

  根据错误提示,一一链接,修改(一个挺漫长的过程,忘做笔记了……)。hello world编译成功。

 

3.是gcc4.2.2编译gcc3.3.6

  在网上看到gcc作者说不再更新维护以前版本的gcc,所以不准备回答我们在编译gcc3.3.6中的各种问题。(http://gcc.gnu.org/ml/gcc/2004-11/msg00410.html

所以改用bootstrap

  参考了这个帖子http://www.cnblogs.com/qi09/archive/2010/12/06/1897821.html

  把关键内容粘贴过来:

  

Step 1:

下载gcc 3.3.6,解压缩至你的工作目录。如:此处我的工作目录为/home/qiqi/software。此时software下新增加一个子目录gcc-3.3.6。另外,这里要注意把.patch文件保存在当前目录下,如:我在software目录下工作,那么把patch文件保存在software目录下。进入gcc-3.3.6目录,执行如下命令。

 

1 patch -Np1 -i ../gcc-3.3.6-no_fixincludes-1.patch &&
2 patch -Np1 -i ../gcc-3.3.6-linkonce-1.patch &&
3 mkdir ../gcc-build &&
4 cd ../gcc-build &&
5 ../gcc-3.3.6/configure --prefix=/opt/gcc-3.3.6 \
6 --enable-shared --enable-languages=c,c++--enable-threads=posix &&
7 make bootstrap
8  

Step 2:

 

检查是否安装成功,如果需要的话。我在这里检查了一下,但是没有看懂输出的东东,所以没起什么作用。贴出来代码参考一下

 

1 make -k check &&
2 ../gcc-3.3.6/contrib/test_summary >test_summary.log 2>&1&&
3 ../gcc-3.3.6/contrib/test_summary | \
4 grep -A7 Summ >test_summary_short.log 2>&1

Step 3:

 

下面以root身份执行

 

1 make install &&
2 mv -v /opt/gcc-3.3.6/lib/libstdc++.so.5*/usr/lib &&
3 ln -v -sf /usr/lib/libstdc++.so.5.0.7/opt/gcc-3.3.6/lib &&
4 ln -v -sf libstdc++.so.5.0.7/opt/gcc-3.3.6/lib/libstdc++.so.5&&
5 chown -v -R root:root \
6 /opt/gcc-3.3.6/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include

至此,我们以成功安装了gcc 3.3.6。但如果查看gcc版本,可能还是gcc 4.4.4等高级版本。

 

这是,我就卸载了高版本的gcc(有点破釜沉舟哦~~555).

rpm -e gcc --nodeps

再查看gcc版本,发现/usr/...(忘记了)/ccache/gcc 无此目录或文件!此时需要修改PATH。

在~/.bashrc文件中添加

export PATH=$PATH:/opt/gcc-3.3.6/bin

保存,现在gcc -v,提示如下信息:

gcc version 3.3.6 ,至此,gcc 3.3.6安装成功!OH YEAH!

 

 

我并没有修改PATH,而是把gcc-3.3.6通过ln链接到了/usr/bin/

编译hello word测试:成功。

 

  

posted on 2012-04-10 13:37  陆大侠  阅读(455)  评论(0编辑  收藏  举报

导航