centos7 安装gcc 5.2.0

该文详细描述了在Linux环境下手动编译并安装GCC5.2.0的过程,包括下载必要的依赖库如GMP、MPFR、MPC,解决安装过程中遇到的错误,以及设置环境变量和更新系统GCC版本。文章还提到了使用yum安装基础工具,并展示了如何备份和替换原有的GCC版本。
摘要由CSDN通过智能技术生成

一、软件准备

wget -c https://mirrors.ustc.edu.cn/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.gz
wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2 
wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
wget -c http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2

依赖依据gcc的安装说明: gcc-5.2.0/contrib/download_prerequisites 
见下:
# 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

二、安装

yum install gcc  gcc-c++ bzip2 make -y
1、安装m4
tar -xf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local/m4
make && make install
然后加入环境变量,否则后面会报错以下错误
‘checking for suitable m4... configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).’
echo "PATH=$PATH:/usr/local/m4/bin" >>/etc/profile
source /etc/profile
cd ..

过程报错:
error: 'gets' undeclared here (not in a function)
解决方法:
cp -r tests/test-readlink.h{,.bak}
cp -r lib/stdio.in.h{,.bak}
sed -i -e '41s/ENOENT/& || errno == EINVAL/' tests/test-readlink.h
sed -i -e '/gets is a/d' lib/stdio.in.h
2、安装gmp-4.3.2
tar -xf gmp-4.3.2.tar.bz2
cd gmp-4.3.2
//创建编译目录
mkdir gmp-build
cd gmp-build
../configure --prefix=/usr/local/gmp-4.3.2
make
make install
cd ..
cd ..
3、安装mpfr-2.4.2
tar -xf mpfr-2.4.2.tar.bz2
cd mpfr-2.4.2
mkdir mpfr-build
cd mpfr-build
../configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2
make
make install
cd ..
cd ..
3、安装mpc-0.8.1.tar.gz
tar -xf mpc-0.8.1.tar.gz
cd mpc-0.8.1
mkdir mpc-build
cd mpc-build
../configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 
make
make install
cd ..
cd ..
4、增加环境变量

vim /etc/profile
source /etc/profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:/usr/local/mpc-0.8.1/lib:/usr/local/mpfr-2.4.2/lib
5、安装GCC5.2.0
tar -xf gcc-5.2.0.tar.gz
cd gcc-5.2.0
mkdir gcc-build
cd gcc-build
../configure --prefix=/usr/local/gcc-5.2.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
make -j4 
//安装 
make install -j4
6、安装好GCC5.2.0之后,重新设置GCC环境变量,更新系统GCC版本号
[root@a927fbd7a4ad ~]# ls /usr/local/gcc-5.2.0/bin  
c++  gcc     gcc-ranlib  x86_64-unknown-linux-gnu-c++  x86_64-unknown-linux-gnu-gcc-5.2.0  x86_64-unknown-linux-gnu-gcc-ranlib
cpp  gcc-ar  gcov        x86_64-unknown-linux-gnu-g++  x86_64-unknown-linux-gnu-gcc-ar
g++  gcc-nm  gcov-tool   x86_64-unknown-linux-gnu-gcc  x86_64-unknown-linux-gnu-gcc-nm

//备份已有的gcc-4.8.5
mkdir /usr/gcc.4.8.5.bak/
mv /usr/bin/{gcc,g++,c++} /usr/gcc.4.8.5.bak/
ln -s /usr/local/gcc-5.2.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-5.2.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-5.2.0/bin/c++ /usr/bin/c++

查看版本
gcc -v
g++ -v

[root@a927fbd7a4ad gcc-build]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-5.2.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
Thread model: posix
gcc version 5.2.0 (GCC) 
[root@a927fbd7a4ad gcc-build]# 

[root@a927fbd7a4ad gcc-build]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-5.2.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
Thread model: posix
gcc version 5.2.0 (GCC) 


[root@a927fbd7a4ad ~]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/local/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-5.2.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
Thread model: posix
gcc version 5.2.0 (GCC)

----------------------end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值