1.准备工作
从软件包中安装的一般都不是最新的版本,
比如需要支持C++11等原因,则需要安装最新版gcc。
查看位置
# which gcc g++
查看版本
# g++ -v
# gcc -v
如果系统还没有任何gcc被安装,则需要从开发包中先安装默认的低版本的gcc
centos下也可以安装带gcc的开发工具:yum groupinstall "Development Tools"
若不先安装旧版本的话安装可能会出现如下错误:
configure:error: no acceptable c compiler found in $PATH
2,下载最新的安装包
官网: https://gcc.gnu.org/
官网: https://gcc.gnu.org/
目前的最新版本为
3.上传到服务器,解压包
# tar -xvf gcc-4.9.2.tar.gz
4.
下载gcc编译的依赖项,这一步,会启动自动下载
./contrib/download_prerequisites
若网络不稳定,可以选择手动下载依赖项,然后在那个五个文件放到gcc-4.9.2目录下,然后编辑download_prerequisites文件,将带wget的语句注释掉,保存,然后在运行一次。
# Necessary to build GCC. 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 # Necessary to build GCC with the Graphite loop optimizations. if [ "$GRAPHITE_LOOP_OPT" = "yes" ] ; then ISL=isl-0.12.2 CLOOG=cloog-0.18.1 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 || exit 1 tar xjf $ISL.tar.bz2 || exit 1 ln -sf $ISL isl || exit 1 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$CLOOG.tar.gz || exit 1 tar xzf $CLOOG.tar.gz || exit 1 ln -sf $CLOOG cloog || exit 1 fi
5.运行configure
# ./configure --prefix=/usr/gcc --enable-languages=c,c++ --disable-multilib
6.如果你的系统内存不是很大,要检查一下内存和swap分区大小
# free -m
你也可以跳过这步,如果make时出现如下错误时,再看下面的内容
build/genattrtab ../.././gcc/config/i386/i386.md insn-conditions.md \ -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c make[3]: *** [s-attrtab] Killed make[3]: Leaving directory `/usr/src/gcc-4.9.2/host-x86_64-unknown-linux-gnu/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory `/usr/src/gcc-4.9.2' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/usr/src/gcc-4.9.2' make: *** [all] Error 2
可以通过增加swap分区的方法解决:请参照:
http://blog.youkuaiyun.com/tangyi2008/article/details/42099427
7.
# make
# make install
验证是否安装成功 gcc -v / g++ -v