# Centos6.5 升级升级手动安装GCC4.8.2
默认的GCC 是4.4.7的,不能支持C++11的特性,关于C++11需要的版本可参考
http://en.cppreference.com/w/cpp/compiler_support
1. 下载GCC4.8.2
```
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf gcc-4.8.2.tar.bz2
```
2. 下载供编译需求的依赖项
```
yum -y install glibc-devel.i686 glibc-devel
yum install gcc-c++
```
查看文件 ./contrib/download_prerequisites
>
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
tar xjf $MPFR.tar.bz2 || exit 1
ln -sf $MPFR mpfr || exit 1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
tar xjf $GMP.tar.bz2 || exit 1
ln -sf $GMP gmp || exit 1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
tar xzf $MPC.tar.gz || exit 1
ln -sf $MPC mpc || exit 1
rm $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz || exit 1
因此需要下载mpfr-2.4.2,gmp-4.3.2,mpc-0.8.1
https://pan.baidu.com/s/1Tgpsf6aCPepcb6AaixjZSg
3. 配置依赖项
将mpfr-2.4.2 、gmp-4.3.2 、mpc-0.8.1解压到gcc-4.8.2目录下,并建立软连接
```
ln -sf mpfr-2.4.2 mpfr
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
```
4. 生成Makefile文件
```
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
```
5. 编译安装
```
make && make install
```
安装结束后,会出现两个地方有gcc,需要修改下软连接:
mv /usr/bin/gcc /usr/bin/gcc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/gcc
另外。g++, cc, c++这几个命令也要改
mv /usr/bin/g++ /usr/bin/g++4.4.7
ln -s /usr/local/bin/g++ /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.4.7
ln -s /usr/local/bin/cc /usr/bin/cc
mv /usr/bin/c++ /usr/bin/c++4.4.7
ln -s /usr/local/bin/c++ /usr/bin/c++
mv /usr/bin/cc4.4.7 /usr/bin/cc
其他安装:
Boost1_65安装boost,下载地址:链接:https://pan.baidu.com/s/12tLMEzaE5RnfMrXUldV6lw 密码:628u
cmake3.3.2安装,wget在线下载即可。
-----------------------------------------------------------------------------------------
GCC 方便的安装
gcc下载路径:http://ftp.gnu.org/gnu/gcc/
目标:升级GCC到4.8.2,以支持C++11。
2. 解压缩:tar -xf gcc-4.8.2.tar.gz;
3. 进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
4. 编译安装 gcc
gcc 编译参数说明:
--prefix //默认 gcc 的安装目录,CentOS-6.5 下面最好安装到 /usr 下,不然可能会有问题
--enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,Java
--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
# tar -zxvf gcc-4.8.2.tar.gz
# cd gcc-4.8.2
# mkdir build
# cd build
# ../configure --prefix=/usr
# make && make install
make的时候出现错误 gnu/stubs-32.h:No such file or directory
yum -y install glibc-devel.i686
参考 http://blog.sina.com.cn/s/blog_6797a6700101eta5.html 的第二条评论。
如果有 “/usr/lib/ld: cannot find -lc”这样的错误,可能是找不到静态库 libc.a,(找不到到动态库 libc.so的可能性很小)。
解决方法:
yum install glic-static (64位)
yum install glic-static.i686 (32位)