出于项目需求系统自带的是gcc4.4.7,版本太低无法编译,下面记录了升级gcc漫长之路。
基本环境配置
#系统 # cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m #gcc 版本 # gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #若没有安装gcc,请使用yum安装基本gcc,来编译高版本gcc ##安装gcc、c++编译器以及C和C++的静态库,常用软件 yum -y install gcc gcc-c++ glibc-static libstdc++-static zip;
安装高版本gcc5.1
由于使用yum安装的gcc并非当前的最新版本,目前gcc的最新版本为5.1.0(gcc 4.8开始全面支持C 11和C++ 11的新特性)。如果我们想要安装最新版本的gcc,yum获取不到,那么就只能需要自行想办法安装高版本gcc了。
下载gcc安装文件
你可以去gcc官方镜像列表去寻找距离你最近的镜像,也可以直接去gcc官网提供的ftp下载中心去下载。
但是如果你想快速下载到gcc,还是直接到国内 中科大开源镜像下载!
安装gcc
#下载解压gcc安装文件 [root@localhost src]# wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2; [root@localhost src]# tar jxf gcc-5.1.0.tar.bz2 -C /usr/local/src; #转到gcc源程序根目录 [root@localhost src]# cd /usr/local/src/gcc-5.1.0; #下载一些必备的依赖程序 #安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录 [root@localhost gcc-5.1.0]# ./contrib/download_prerequisites;
注意:本教程并没有对gmp、mpfr、mpc等软件分别进行解压和编译,而是直接由download_prerequisites负责下 载并解压,最后和gcc一起进行编译安装,gmp、mpfr、mpc必须解压到gcc-5.1.0目录下,最后和gcc一起进行编译安装。如果gmp、mpfr、mpc解压到其他文件夹,在编译过程中会找不到gmp、mpfr、mpc
安装GCC 5.1.0
[root@localhost contrib]# cd ../; [root@localhost gcc-5.1.0]# ./configure --prefix=/usr/local/gcc-5.1.0 --disable-multilib --enable-languages=c,c++,java #充分发挥CPU四核优势,启动四线程(j后面表示当前核心数) [root@localhost gcc-5.1.0]# make -j4 #编译gcc源程序,需要消耗比较长的时间 [root@localhost gcc-5.1.0]# make #安装gcc [root@localhost gcc-5.1.0]# make install
其中执行make命令这一过程耗费的时间可能非常多,笔者这里耗费了120多分钟才编译完成。执行完上述命令后,我们的gcc就已经安装成功了。
附属安装
如果在安装gcc过程中,没有通过download_prerequisites下载依赖文件,安装gcc提示gmp等依赖找不到,可以单独下载编译安装gmp、mpfr、mpc依赖库,,
#### 编译安装gmp #### [root@localhost contrib]# tar -vxf gmp-4.3.2.tar.bz2 [root@localhost contrib]# cd gmp-4.3.2 [root@localhost contrib]# ./configure --prefix=/usr/local/gmp-4.3.2 [root@localhost contrib]# make && make install #### 编译安装mpfr #### [root@localhost contrib]# tar -vxf mpfr-2.4.2.tar.bz2 [root@localhost contrib]# cd mpfr-2.4.2 [root@localhost contrib]# ./configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2 [root@localhost contrib]# make && make install #### 编译安装mpc ##### [root@localhost contrib]# tar -zvxf mpc-0.8.1.tar.gz [root@localhost contrib]# cd mpc-0.8.1 [root@localhost contrib]# ./configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 [root@localhost contrib]# make && make install #### 加入到环境变量 #### [root@localhost contrib]# vi /etc/profile ####在文件末尾添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/lib [root@localhost contrib]# source /etc/profile [root@localhost contrib]# cd ../; [root@localhost gcc-5.1.0]# ./configure --prefix=/usr/local/gcc-5.1.0 --with-gmp=/usr/local/gmp-4.3.2/ --with-mpfr=/usr/local/mpfr-2.4.2/ --with-mpc=/usr/local/mpc-0.8.1/ --disable-multilib --enable-languages=c,c++,java #充分发挥CPU四核优势,启动四线程(j后面表示当前核心数) [root@localhost gcc-5.1.0]# make -j4 #编译gcc源程序,需要消耗比较长的时间 [root@localhost gcc-5.1.0]# make && make install