前提:保证旧版的gcc,g++存在! root用户
1. 下载源码和依赖包源码:新建目录bak
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz
#Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz
$ ls bak/*.gz
bak/gcc-4.9.3.tar.gz bak/gmp-5.0.1.tar.gz bak/mpc-0.9.tar.gz bak/mpfr-3.1.0.tar.gz
2. 编译
解压tar包,并新建编译目录 t t1 t2 t3,分别进行以上源码编译
$ ls bak
t t1 t2 t3
cd t1 ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1 make make install cd t2 ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1 make make install cd t3 ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 make make install #设置链接,在/etc/profile文件末尾加上,注意修改后运行#source /etc/profile 使其生效即可 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib cd t ../gcc-4.9.3/configure --prefix=/usr/local/gcc-4.9.3 --with-mpc=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --disable-multilib --enable-languages=c,c++ --enable-threads=posix --disable-checking make make install
3. 切换GCC到新版:
[root@localhost bin]# pwd
/usr/bin
[root@localhost bin]# mv gcc gcc-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/gcc /usr/bin/gcc
[root@localhost bin]# mv g++ g++-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/g++ /usr/bin/g++
4. ok,确认版本
gcc -v
g++ -v
----补充:
若可以联网的话,有以下两个参考,未测试过
1.下载供编译需求的依赖项
参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
cd gcc-4.9.3
./contrib/download_prerequisites
2. 编译(注意:此步骤非常耗时)
make -j4
-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。
如果报错错误集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc
根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):
yum -y install glibc-devel.i686 glibc-devel
1. 安装静态库,如果没有安装静态库,后面编译不会通过;
yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static -y
yum -y install glibc-devel.i686 glibc-devel
4. 进入目录;
cd gcc-x.x.x
5. 运行脚本download_prerequisites,此脚本会自动下载依赖库;
./contrib/download_prerequisites
6. 新建临时目录,用于存放编译过程中的临时文件;
mkdir gcc-build
cd gcc-build
7. 配置编译选项;
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
8. 编译安装,过程十分漫长,在我的小霸王上足足编了2个多小时;
make & make install