转 http://blog.csdn.net/zhangxxxww/article/details/43305957
我测试中参考下面的略微修改才成功
CentOS6.5自带的gcc版本为4.4.7,有些年代了,一些新软件要用到的库没有,最新的gcc 4.8.2已经放出来了,于是下载源代码安装了一个试试。
1.首先把旧的gcc相关的编译工具安装好
- yum install gcc gcc-c++ glibc-static -y
2.下载gcc 4.8.2源代码
- wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2
解压缩源代码包,进入gcc-4.8.2目录,执行./contrib/download_prerequisities脚本会自动下载三个依赖库别为gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1,也可以通过如下地址离线下载安装:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
如果是通过脚本自动下载的依赖库,则会在gcc-4.8.2目录下生成gmp、mpfr和mpc三个目录,分别安装即可
3.安装gmp
- cd gmp
- mkdir build
- cd build
- ../configure --prefix=/usr/local/gcc/gmp-4.3.2
su获取root权限,执行安装
- make && make install
4.安装mpfr
回到gcc-4.8.2目录进入mpfr目录
- cd ../../mpfr
- mkdir build
- cd build
- ../configure --prefix=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2
su获取root权限,执行安装
- make && make install
5.安装mpc
回到gcc-4.8.2目录进入mpc目录
- cd ../../mpc
- mkdir build
- cd build
- ../configure --prefix=/usr/local/gcc/mpc-0.8.1 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2
su获取root权限,执行安装
- make && make install
6.添加共享库路径,su到root编辑ld.so.conf文件,添加如下内容到文件中:
/usr/local/gcc/gmp-4.3.2/lib
/usr/local/gcc/mpfr-2.4.2/lib
/usr/local/gcc/mpc-0.8.1/lib
保存退出,执行ldconfig命令
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc/gmp-4.3.2/lib:/usr/local/gcc/mpfr-2.4.2/lib:/usr/local/gcc/mpc-0.8.1/lib
7.编译GCC4.8.2
- cd ../..
- mkdir build
- cd build
- ../configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib
4修改为
../configure--prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gcc/gmp-4.3.2 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-mpc=/usr/local/gcc/mpc-0.8.1
换root,执行make && makeinstall,开始漫长的等待......
- make && make install
8.卸载旧版本
- yum remove gcc
- yum remove gcc-c++
- updatedb
链接到新版本
- cd /usr/bin
- ln -s /usr/local/gcc/bin/gcc gcc
- ln -s /usr/local/gcc/bin/g++ g++
添加man帮助
vi/etc/man.config
添加gcc的man路径到配置文件中
MANPATH /usr/local/gcc/share/man
保存退出即可生效,可使用man gcc查看帮助