2021-05-12 14:32:11
CentOS 6.9升級GCC至6.4.0版本
一、升級前測試:
1、 檢視系統版本:# cat /etc/RedHat-release
2、 檢視預設的gcc版本:# gcc --version
3、 檢視預設動態庫:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
4、 不支援c++11的新特性:
嘗試寫一個C++11特性的程式段tryCpp11.cc,使用了shared_ptr
# vim /tmp/tryCpp11.cc
#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int> pInt(new int(5));
std::cout << *pInt << std::endl;
return 0;
}
# cd /tmp
# g++ -std=c++11 -o tryCpp11 tryCpp11.cc
二、下載gcc:
下載地址http://ftp.gnu.org/gnu/gcc/,版本gcc-6.4.0.tar.xz,或者# yum -y install wget
# wget http://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz
三、編譯安裝gcc:
# yum -y install xz
# tar -xf gcc-6.4.0.tar.xz -C /usr/src
# cd /usr/src/gcc-6.4.0
=================================================================================
#./contrib/download_prerequisites
//通過FTP的方式下載編譯gcc時需要用到的mpfr-2.4.2.tar.bz2、gmp-4.3.2.tar.bz2、mpc-0.8.1.tar.gz和isl-0.15.tar.bz2軟體包,由於可能會出現無法下載的情況,所以事先將這4個軟體包放至在/usr/src/gcc-6.4.0目錄下,並解壓
# cd /usr/src/gcc-6.4.0
# cp /software/mpfr-2.4.2.tar.bz2 .
# cp /software/gmp-4.3.2.tar.bz2 .
# cp /software/mpc-0.8.1.tar.gz .
# cp /software/isl-0.15.tar.bz2 .
# tar -xf mpfr-2.4.2.tar.bz2
# tar -xf gmp-4.3.2.tar.bz2
# tar -xf mpc-0.8.1.tar.gz
# tar -xf isl-0.15.tar.bz2
# ln -sv mpfr-2.4.2 mpfr
# ln -sv gmp-4.3.2 gmp
# ln -sv mpc-0.8.1 mpc
# ln -sv isl-0.15 isl
# ls
=================================================================================
# ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
# make -j4 //-j4:make對多核處理器的優化選項,此步驟非常耗時
# make install
# ls /usr/local/bin | grep gcc
四、設定gcc:
# find / -name "libstdc++.so*"
# cd /usr/lib64
# cp /usr/src/gcc-6.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 .
# mv libstdc++.so.6 libstdc++.so.6.old
# ln -sv libstdc++.so.6.0.22 libstdc++.so.6
五、升級後驗證:
1、 檢視升級後的gcc版本(有時可能需要重新啟動伺服器才能看到更新後的版本):# gcc --version
2、 檢視最新動態庫:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
3、 支援c++11的新特性:
# cd /tmp
# g++ -std=c++11 -o tryCpp11 tryCpp11.cc
# ./tryCpp11
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-10/147256.htm
相關文章