本人Linux小白一枚,因為學習需要不得已摸索相關技能,由於無大師指點,走了很多彎路,在網上找了一些教程,但是因為缺乏基本知識無法理解其中的含義而無法達到活學活用,最終都沒能成功實現。出現轉機的是在某個群組裡問了一個專業人士指點迷津,最終才恍然大悟,成功地打通了這個方法。
本著無私分享的角度,我把親測可用的方法貼文給大家,為小白們指明一條道路,這樣達到事半功倍。其中現在看來方法也比較簡單(PS:理解的東西才會變得容易)。
1、cat /etc/redhat-releas
查看當前的系統版本
2、 gcc -v
查看當前的gcc版本
3、yum -y install wget bzip2 gcc gcc-c++ glibc-headers
檢查安裝升級用到的一些工具
4、wget -c -P /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz
下載gcc-6.4.0到/opt/tmp/下,即為我們的安裝路徑,其他版本的可以將gcc版本進行替換。
5、cd /opt/tmp/
切換自下載和安裝目錄下
6、tar -zxvf gcc-6.4.0.tar.gz
解壓安裝包
7、cd gcc-6.4.0
打開解壓文件
8、./contrib/download_prerequisites
下載gmp mpfr mpc等供編譯需求的依賴項,All prerequisites downloaded successfully即為成功。
9、 mkdir build
在/opt/tmp/新建文件夾
10、cd build
打開新建文件夾
11、../configure --prefix=/usr/local/gcc-6.4.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
編譯設置,這裡版本號靈活替換
12、make
編譯,這裡耗時至少1h以上,可以去幹別的了
13、make install
安裝
14、gcc -v
查看安裝的版本號,此時還是顯示顯示舊版
........................................................
繼續操作
15、echo -e '\\nexport PATH=/usr/local/gcc-6.4.0/bin:$PATH\\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
配置
16、ln -sv /usr/local/gcc-6.4.0/include/ /usr/include/gcc
導出文件
17、ldconfig -v
配置生效
18、ldconfig -p |grep gcc
19、gcc -v
檢查是否為新的版本號
........................................................
到這裡還沒結束,還需繼續配置,不然用不了
20、find / -name "libstdc++.so*"
檢查動態庫
要最後一行的結果//最新動態庫
/opt/tmp/gcc-6.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
/opt/tmp/gcc-6.4.0/build是升級gcc時的輸出目錄,將上面的最新動態庫libstdc++.so.6.0.22複製到/usr/lib64目錄下。
21、cp /opt/tmp/gcc-6.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib64
一定不要忘記後面添加的/usr/lib64,複製後,修改系統默認動態庫的指向,即:重建默認庫的軟連接。
22、cd /usr/lib64
切換工作目錄至/usr/lib64
23、rm -rf libstdc++.so.6
將默認庫的軟連接指向最新動態庫
24、ln -s libstdc++.so.6.0.22 libstdc++.so.6
默認動態庫升級完成。
25、strings /usr/lib64/libstdc++.so.6 | grep GLIBC
重新運行檢查動態庫,即可。
至此,大功告成。
閱讀更多 猿哥愛分享 的文章