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