1.检查gcc是否安装,并安装相对应的编译工具
centos6.6 系统自带的 gcc是4.4.7版本,如果没有可以通过以下命令安装
yum install gcc
yum install gcc-c++
然后安装gcc相关的编译工具
yum install gcc gcc-c++ glibc-static –y
2.下载gcc5.2.0 并尝试编译
下载gcc5.2.0安装包
wget http://gcc.parentingamerica.com/releases/gcc-5.2.0/gcc-5.2.0.tar.gz
解压gcc5.2.0
tar –zxvf gcc-5.2.0.tar.gz
编译gcc5.2.0
cd gcc-5.2.0
./configure
这里直接./configure 编译会出现两个可能的错误:
1. 没有安装旧的gcc gcc-c++相关的编译工具则会提示找不到 C-complier
2. 在存在C-complier的情况下直接./configure 会提示相关的组件没有安装,提示如下:
configure: error: Building GCC requires GMP4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or--with-mpc options to specify
their locations. Source code for these libraries can be foundat
their respective hosting sites as well asat
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.htmlfor additional info. If
you obtained GMP, MPFR and/or MPC from avendor distribution package,
make sure that you have installed both thelibraries and the header
files. They may be located in separate packages.
此时可以进入gcc-5.2.0目录下,执行如下命令:
./contrib/download_prerequisites
脚本会自动下载三个依赖库别为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
http://www.multiprecision.org/mpc/download/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-5.2.0目录进入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-5.2.0目录进入mpc目录
cd ../../mpc
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命令
7编译 GCC 5.2.0
cd ../..
cd build
../configure –prefix=/usr/local/gcc –enable-threads=posix–disable-checking –enable-languages=c,c++ --disable-multilib
#如果上述../configure命令会出现找不到 gmpmpfr mpc的提示,可以用下面的命令:
../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&& make install 开始漫长的安装等待……
8 卸载旧版本
yum remove gcc
yum remove gcc-c++
updated
链接到新版本
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查看帮助
9 设置gcc 5.2.0 支持c++ 11
在编译选项中加 -std=c++0x –Wall 或者 -std=c++11
g++ test.cpp -o test.out -std=c++0x -Wall
最后那个是编译警告,初学打开比较好
gcc目前需要添加-std=c++0x 才能顺利编译c++11新特性
或者用alias
对当前系统下次重启前 临时生效:
alias g++=’g++ -std=c++0x’
或者想让它永久生效,则写入/etc/bashrc 文件中
vim /etc/bashrc
alias g++=’g++ -std=c++0x –Wall’