0%

Centos7 编译安装 gcc-11.3.0

下载源码

1
wget https://ftp.gnu.org/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.gz

编译gcc

1
2
3
4
5
6
7
8
9
10
11
tar -zxf gcc-11.3.0.tar.gz && cd gcc-11.3.0 && \
./contrib/download_prerequisites && \ # 下载依赖包
mkdir tmp && cd tmp && \
../configure --prefix=/usr/local/gcc/gcc-11.3.0 -enable-checking=release -enable-languages=c,c++ -disable-multilib


make -j$(nproc) && \
make check


make install

检查是否正确安装

1
gcc -v

添加环境变量

1
2
3
4
5
6
7
vim /etc/profile.d/gcc.sh

export PATH=/usr/local/gcc/gcc-11.3.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/gcc-11.3.0/lib64:$LD_LIBRARY_PATH

chmod +x /etc/profile.d/gcc.sh
source /etc/profile

配置软链接,使新版本gcc全局可用

1
2
rm -f /usr/bin/gcc
ln -s /usr/local/gcc/gcc-11.3.0/bin/gcc /usr/bin/gcc

更新动态库

1
2
3
4
5
6
7
8
9
# 查看当前的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# rm -f /usr/lib64/libstdc++.so.6
ln -sf /usr/local/gcc/gcc-11.3.0/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
ln -sf /usr/local/gcc/gcc-11.3.0/lib64/libstdc++.so.6.0.29 /lib64/libstdc++.so.6
# 查看更新后的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# 安装后的动态库会位于/usr/local/lib64目录下,
# 其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX