Centos7升级gcc gcc4.85 – gcc9.4
参考:https://blog.csdn.net/xiyou__/article/details/120717986
创建所需目录
mkdir -p /usr/local/gcc-9.4
mkdir -p /usr/local/gcc-9.4/pkg
mkdir -p /usr/local/gcc-9.4/pkg/gcc
mkdir -p /usr/local/gcc-9.4/pkg/gmp
mkdir -p /usr/local/gcc-9.4/pkg/m4
mkdir -p /usr/local/gcc-9.4/pkg/mpc
mkdir -p /usr/local/gcc-9.4/pkg/mpfr
mkdir -p /usr/local/gcc-9.4/pkg/isl
需要依赖文件
根据gcc解压之后的 contrib/download_prerequisites 文件中配置去下载安装相应的依赖
不同版本gcc下载地址:https://gcc.gnu.org/pub/gcc/releases/
[root@localhost gcc-9.4.0]# cat contrib/download_prerequisites |grep -E "gmp=|mpfr=|mpc=|isl="
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.18.tar.bz2'
依赖文件下载地址:https://gcc.gnu.org/pub/gcc/infrastructure/
需要gmp mpfr mpc isl,因为安装gmp的时候遇到需要m4,这里先安装了m4.如果本地有m4命令。可以忽略 或者后续如果版本需要升级之类的可以参考第一步
1、先装m4
cd /usr/local/gcc-9.4
tar -xf m4-1.4.16.tar.bz2
cd m4-1.4.16
mkdir build
#这一步是因为编译的时候报错[gets xxx的字样 具体报错不记得了]。可以按照下一步删除文件中的这一行。
#sed -i -e '/gets is a security/ d' ./lib/stdio.in.h
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/m4
make
make install
###报错修改lib/
##sed -i -e '/gets is a security/d' ./stdio.in.h
安装完之后可能找不到m4 手动ln 一下
ln -s /usr/local/gcc-9.4/pkg/m4/bin/m4 /usr/bin/
2、安装gmp
cd /usr/local/gcc-9.4
tar -xf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/gmp
make
make install
3、安装mpfr
cd /usr/local/gcc-9.4
tar -xf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/mpfr --with-gmp=/usr/local/gcc-9.4/pkg/gmp
make
make install
4、安装mpc
cd /usr/local/gcc-9.4
tar -xf mpc-1.0.3.tar.gz
cd mpc-1.0.3
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/mpc --with-gmp=/usr/local/gcc-9.4/pkg/gmp --with-mpfr=/usr/local/gcc-9.4/pkg/mpfr
make
make install
5、安装isl
cd /usr/local/gcc-9.4
tar -xf isl-0.18.tar.bz2
cd isl-0.18
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/isl --with-gmp-prefix=/usr/local/gcc-9.4/pkg/gmp
make
make install
6、配置相关依赖库
export LD_LIBRARY_PATH=/usr/local/gcc-9.4/pkg/gmp/lib:/usr/local/gcc-9.4/pkg/mpfr/lib:/usr/local/gcc-9.4/pkg/mpc/lib:/usr/local/gcc-9.4/pkg/isl/lib:$LD_LIBRARY_PATH
7、安装gcc
cd /usr/local/gcc-9.4
tar -xf gcc-9.4.0.tar.gz
cd gcc-9.4.0
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/gcc --enable-threads=posix --disable-checking --disable-multilib --enable--long-long --enable-languages=c,c++ --with-gmp=/usr/local/gcc-9.4/pkg/gmp --with-mpfr=/usr/local/gcc-9.4/pkg/mpfr --with-mpc=/usr/local/gcc-9.4/pkg/mpc
make
make install
#上面make的时候超级慢 而且特别吃资源,我测试环境2核2G内存的机器直接卡死。 后面提升到4核4G内存才成功,还是很慢。
#
#下面这个忽略
##../configure --prefix=/usr/local/gcc-9.4/gcc --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++
8、替换新的gcc
which gcc
cd /usr/bin/
mv gcc gcc_4.8
mv g++ g++_4.8
ln -s /usr/local/gcc-9.4/gcc/bin/gcc /usr/bin/
ln -s /usr/local/gcc-9.4/gcc/bin/g++ /usr/bin/