Centos7环境下gcc由4.8升级到6.4

一、环境说明
1.使用的操作系统为centos7
2.本系统内的原GCC版本为4.8,确保机器上已安装gcc和g++,如果没有,通过如下面命令安装默认版本的gcc和g++

yum install gcc
yum install gcc-c++

注:本人因为删除了默认的gcc和g++(4.8版本),后来因为源码编译gcc6.4需要系统内有c编译环境,又重新装了gcc而未装g++,导致编译过不去,查看gcc6.4下的config.log内提示g++命令未找到,故又重装了g++。

二、升级过程
1.先安装gmp,mpfr,mpc三个包
安装gmp包:

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure –prefix=/usr/local/gmp
make && make install

安装mpfr包:

wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.gz
tar xvf mpfr-4.0.1.tar.gz
cd mpfr-4.0.1
./configure –prefix=/usr/local/mpfr –with-gmp=/usr/local/gmp
make && make install

安装mpc包:

wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
tar xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure –prefix=/usr/local/mpc –with-gmp=/usr/local/gmp -with-mpfr=/usr/local/mpfr
make && make install

将库文件加入如下文件:
vi /etc/ld.so.conf
增加以下三行
/usr/local/gmp/lib
/usr/local/mpfr/lib
/usr/local/mpc/lib
#
加完后使用如下命令更新
ldconfig -v

源码安装gcc包:

wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz
tar xvf gcc-6.4.0.tar.gz
./configure –enable-checking=release –enable-languages=c,c++ –disable-multilib –with-gmp=/usr/local/gmp –with-mpfr=/usr/local/mpfr –with-mpc=/usr/local/mpc
make -j2
make install

删除4.8版本,修改6.4版本的软链接
后续补充

三、安装过程中出现的问题及解决方法
1.. ../mpc/src/mul.c:error: conflicting types for ‘mpfr_fmma’
解决办法:
将mul.c内的所有mpfr_fmma函数改名为mpfr_fmma_mul,本人改动了三处地方

2.执行完1后在配置gcc时出现要求mpfr gmp mpc版本要求的错误时,在gcc目录下的config.log日志内如果有mpfr_add_one_ulp和mpfr_sub_one_ulp不存在的错误,需要修改mpfr下的mpfr.h,新增如下内容:

#define mpfr_add_one_ulp(x,r) \
 (mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x))
#define mpfr_sub_one_ulp(x,r) \
 (mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))

本人安装过程中,主要参考了如下链接的文档:
https://www.cnblogs.com/milton/p/7653760.html
http://www.mamicode.com/info-detail-2258026.html

你可能感兴趣的:(linux)