这几天将系统OpenSUSE11.1的gcc版本更新到了4.4.2,并且保留了系统自带的gcc-4.3.2.
下面将整个过程更新的过程写下来,希望对有需要的人提供一些帮助。
首先需要准备需要材料:gcc4.4.2版需要安装gmp4.2.0+和mpfr2.3.0+,到GMP的网站(http://gmplib.org/)上下载gmp-4.3.1.tar.gz 和mprf的网站(http://www.mpfr.org/)上下载mpfr-2.4.2.tar.gz
分别解压缩
tar zxvf gmp-4.3.1.tar.gz
tar zxvf mpfr-2.4.2.tar.gz
解压之后, 文件夹名称为gmp-4.3.1和mpfr-2.4.2,按照下面步骤安装。
1. 安装gmp:
#cd gmp-4.3.1
# ./configure
# make
# make check
这一步用来查看有没有文件不匹配或缺失,然后安装:
# make install
2. 安装mpfr
# cd mpfr-2.4.2
配置:
# ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib
# make
# make check
接下来安装:
# make install
准备工作完成,以下是gcc的安装与更新。
1.在GCC网站上(http://gcc.gnu.org/)下载资源。我下载的版本为gcc-4.4.2.tar.gz
2. 解压缩
$ tar xzvf gcc-4.4.2.tar.gz
新生成的gcc-4.4.2这个目录为源目录。
3. 建立目标目录
目标目录是用来存放编译结果的地方。我 建立了一个叫 gcc-build ,作为目标目录(与源目录gcc-4.4.2是同级目录):
$ mkdir gcc-build
$ cd gcc-build
以下的操作主要是在gcc-build下进行。
4. 配置
在我的机器上,我是这样配置的:
$ ../gcc-4.4.2/configure --prefix=/usr/local/gcc-4.4.2 (注:/usr/local/gcc-4.4.2是自定的安装目录)
将GCC安装在/usr/local/gcc-4.4.2目录下。
5. 编译
$ make
6. 安装
需要管理员的权限,用su 命令切换到root用户,然后安装
# make install
至此,GCC 安装过程就完成了。
7. 环境设置(将gcc的头文件和库文件指向新的版本)
cd $HOME
ls -a
sudo vi .bashrc
向其中添加以下语句。
GCCHOME=/usr/local/gcc-4.4.2 (指定gcc的搜索路径)
PATH=$GCCHOME/bin:$PATH
LD_LIBRARY_PATH=$GCCHOME/lib
export GCCHOME PATH LLD_LIBRARY_PATH
8. 重新引导,查看gcc版本
$ source $HOME/.bashrc
$ which gcc
会显示gcc新的路径为 /usr/local/gcc-4.4.2
$ gcc -v
会显示gcc的版本为4.4.2
虽然这是Bash语法,但是要是直接粘到shell里面后果自负……
虽然看起来很快,但是它们总共用了我7个机时……
注意几个库一定要按顺序编译,版本不一定非要是这样。
01#安装GMP 5.0.1
02#cd to source
03./configure --prefix=/usr/local/gmp-5.0.1
04make
05sudomakeinstall
06#安装MPFR 2.4.2
07#cd to source
08./configure --prefix=/usr/local/mpfr-2.4.2--with-gmp=/usr/local/gmp-5.0.1
09make
10sudomakeinstall
11#安装MPC 0.8.1
12#cd to source
13./configure --prefix=/usr/local/mpc-0.8.1--with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2
14make
15sudomakeinstall
16#安装 GCC
17#cd to source
18exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib
19./configure --prefix=/usr/local/gcc-4.6.0--enable-threads=posix--disable-checking--disable-multilib--enable-languages=c,c++--with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-2.4.2--with-mpc=/usr/local/mpc-0.8.1
20make
21sudomakeinstall
22#为了检查,安装autogen,着个源里有
23sudoapt-getinstallautogen
24makecheck
25#设置链接
26sudoln-s-f/usr/local/gcc-4.6.0/bin/gcc /usr/bin/gcc0x
27sudoln-s-f/usr/local/gcc-4.6.0/bin/g++ /usr/bin/g++0x
28#永久性地设定环境变量
29sudogedit/etc/bash.bashrc
30source/etc/bash.bashrc/etc/profile/
31#在里面随便找个地方加上句话
32#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-4.6.0/lib:/usr/local/gcc-4.6.0/libexec
33#注销一下,看看有没有用
34#特别测试一下STL能不能编译,C++0x的标准有没有支持
35#Enjoy It!
贴张图: