1.先安裝依賴庫以下3個和isl(isl找不到)
yum install mpfr
yum install gmp
yum install *mpc*
2.安裝c和c++的依賴庫
yum install glibc-static libstdc++-static
yum install gcc
yum install gcc-c++
yum install wget
3.下載gcc最新版本6.3(可以從gcc官網找速度快的源下載)
進入一個日常保存軟件安裝包的位置下載文件。
wget http://mirrors.concertpass.com/gcc/releases/gcc-6.3.0/gcc-6.3.0.tar.gz
4.解壓
tar -xf gcc-6.3.0.tar.gz
5.獲取依賴庫,再解壓目錄運行如下命令,會自動下載步驟1中安裝的庫和isl庫
./contrib/download_prerequisites
6.配置,然後新建目錄,在新目錄編譯,防止污染源碼目錄
mkdir gcc-build-6.3.0
cd gcc-build-6.3.0/
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
7.然後編譯(j4,是用4線程去編譯,也可以不用)
make -j4
如果你的機器沒有4個核(邏輯核也行),最好不要用j4,這樣反而會頻繁地競爭核心,導致速度下降。
8.安裝
make install
9.然後替換老的gcc文件
mv /usr/bin/gcc /usr/bin/gcc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++4.4.7
ln -s /usr/local/bin/g++ /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/cc
mv /usr/bin/c++ /usr/bin/c++4.4.7
ln -s /usr/local/bin/c++ /usr/bin/c++
上面的命令用mv重命名了老的軟連接文件,其實用rm刪除也可以。還有要注意不要鏈接錯文件,不然就沒有用了。比如喵哥遇到錯誤:
/bin/sh: cc: command not found
其實是因爲鏈接出了錯誤:
ln -s /usr/local/bin/cc /usr/bin/cc
在 /usr/local/bin中是沒有cc的,只有gcc。之前按照參考的博文設置的,後來遇到用cc編譯文件才發現鏈接錯了。
10.替換老的c++.so文件
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6
可以用strings /usr/lib64/libstdc++.so.6 | grep GLIBC查找是否已經加入了新的庫進去。