1. 下載最新的源碼包並解壓縮
wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
tar -zxvf gcc-11.2.0.tar.gz
2.下載依賴及配置文件
yum -y install bzip2 #已安裝可以跳過這一步
cd gcc-11.2.0
./contrib/download_prerequisites
3. 配置
mkdir build
cd build/
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
#–enable-languages表示你要讓你的gcc支持那些語言,
#–disable-multilib不生成編譯爲其他平臺可執行代碼的交叉編譯器。
#–disable-checking生成的編譯器在編譯過程中不做額外檢查,
#也可以使用*–enable-checking=xxx*來增加一些檢查
4. 編譯與安裝
make
#這一步需要時間非常久 可以使用 make -j 4 讓make最多運行四個編譯命令同時運行,加快編譯速度(建議不要超過CPU核心數量的2倍)
make install
5. 驗證gcc版本
gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (GCC)
驗證:gcc -v;或者g++ -v,如果顯示的gcc版本仍是以前的版本,就需要重啓系統;
或者可以查看gcc的安裝位置:which gcc;
然後在查看版本 /usr/local/bin/gcc -v
確定以及配置成功後可以將原先的版本刪除
6. 刪除舊版本
yum -y remove gcc g++
7. 配置新版本全局可用
ln -s /usr/local/bin/gcc /usr/bin/gcc
8. 更新動態庫
#查看當前的動態庫
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
#查看更新後的動態庫
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# 安裝後的動態庫會位於/usr/local/lib64目錄下,
#其他版本在該目錄下尋找對應的動態庫libstdc++.so.6.X.XX