1.下载gcc安装包
https://ftp.gnu.org/gnu/gcc
选择需要的版本,本文选择的是 gcc-9.10.tar.gz
2.下载gcc依赖包
用压缩工具打开下载好的 gcc-9.10.tar.gz ,查看contrib/download_prerequisites文件找到所需要下载的依赖配置
如果是离线 修改
base_url='gcc目录'
verify=0

下载依赖:
https://ftp.gnu.org/pub/gnu/gmp/gmp-6.1.0.tar.bz2
http://mirror.hust.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2
https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
解压到gcc-x.x目录
tar -xzvf gcc-9.4.0.tar.gz
tar -xf gmp-6.1.0.tar.bz2
tar -xf mpfr-3.1.4.tar.bz2
tar -xf mpc-1.0.3.tar.gz
tar -xf isl-0.18.tar.bz2
建立软链接
ln -sf gmp-6.1.0 gmp
ln -sf mpfr-3.1.4 mpfr
ln -sf mpc-1.0.3 mpc
ln -sf isl-0.18 isl
#不能在source目录下configure必须在上一层的目录下
makedir build && cd build
../configure --prefix=/usr/local/gcc-9.4.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
遇到几个报错
error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
解决:
yum install m4
configure: error: gmp.h can't be found, or is unusable.
,是因为缺少lipgmp库,使用:
yum install gmp-devel.x86_64
error: libmpfr not found or uses a different ABI (including static vs shared)..
,是因为缺少lipgmp库,使用:
yum install mpfr-devel.x86_64
make
make install
vi /etc/profile
LD_LIBRARY_PATH=/usr/local/gcc-9.3.0/lib
export LD_LIBRARY_PATH
或者
echo -e '\nexport PATH=/usr/local/gcc-9.2.0/bin:$PATH\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
source /etc/profile
ln -sv /usr/local/gcc-9.4.0/include/ /usr/include/gcc #导出头文件
ldconfig -v #配置生效
更换libstdc++.so.6
cp /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6.0.28
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6
gcc -v