CentOS 6.6 升級GCC v7.5.0 (完整)


0.為什么是GCC7.5

CentOS7 自帶的 gcc/g++ 版本是 4.8,如果沒有安裝,可以通過 yum 命令安裝。

由於 gcc/g++ 4.8 完全支持 C++ 11,支持部分 C++ 14,不支持 C++ 17,而完全支持 C++ 17 的是 g++ 7 及以上版本:

個人不太建議安裝GCC8.X,太新的編譯器,所需要的依賴包、各種環境都需要最新版本,安裝過程中會出現很多問題。而且還不一定那么穩定。

本着夠用就好的原則,GCC7.5完全支持C++17,是最理想的選擇。

1.下載源碼,解壓

 經測試,這個 https://ftp.gnu.org/ 地址還是很快的,而且是完整的,不想有些地方下載的是有缺文件的!!!!

wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz
tar -zxf gcc-7.5.0.tar.xz

2.下載依賴

我們可以直接用自帶的腳本完成

cd gcc-7.5.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

3.編譯安裝

 編譯比較耗時,我用了七八十分鍾;雙核cpu, 所以 make 參數 `-j2` :

mkdir gcc-build-7.5.0
cd gcc-build-7.5.0
make -j2 && make install && date

4.更新動態庫

這個,我編譯安裝后,好像 不用更新,添加PATH路徑 /usr/local/lib64 就可以了。

[root@wsvr cmake-build]# ll /usr/local/lib64/libstdc++.so*
lrwxrwxrwx 1 root root       19 12月 17 13:10 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.24
lrwxrwxrwx 1 root root       19 12月 17 13:10 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.24
-rwxr-xr-x 1 root root 11587712 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24
-rw-r--r-- 1 root root     2397 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24-gdb.py
[root@wsvr cmake-build]# ll /usr/lib64/libstdc++.so*
lrwxrwxrwx 1 root root     19 12月 16 19:36 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x 1 root root 995840 9月  30 10:17 /usr/lib64/libstdc++.so.6.0.19

 

如果程序運行報錯,檢查動態庫:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

 從輸出可以看出,gcc的動態庫還是舊版本的。說明出現這些問題,是因為升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫。

 執行以下命令,查找編譯gcc時生成的最新動態庫:(在root權限下進行操作,后面都是,不再贅述)

find / -xdev -name "libstdc++.so*"

復制庫到 /usr/lib64

cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64

刪掉舊的libstdc++.so.6(這是一個軟鏈接),創建新的libstdc++.so.6軟鏈接

rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.24   /usr/lib64/libstdc++.so.6

 

5.更多參考

https://www.cnblogs.com/lzpong/p/5755678.html

https://www.cnblogs.com/FengGeBlog/p/12994103.html

https://www.cnblogs.com/music-liang/p/12900457.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM