1. 程式人生 > >CentOS 6.9升級gcc至6.4.0版本

CentOS 6.9升級gcc至6.4.0版本

gcc

一、升級前測試:

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.bz2gmp-4.3.2.tar.bz2mpc-0.8.1.tar.gzisl-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 //-j4make對多核處理器的優化選項,此步驟非常耗時

# 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://qiuyue.blog.51cto.com/1246073/1961304

CentOS 6.9升級gcc至6.4.0版本