本帖最后由 342423 于 2017-9-1 13:04 编辑
一、升级前测试:
1、 查看系统版本:# cat /etc/redhat-release
wKiom1mnbsmBHddTAAA1bbF2kjk893.jpg (13.93 KB, 下载次数: 0)
2017-9-1 13:04 上传
2、 查看默认的gcc版本:# gcc --version
wKiom1mnbumyUO5kAADMmuq6kQ4277.jpg (49.54 KB, 下载次数: 0)
2017-9-1 13:04 上传
3、 查看默认动态库:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
wKiom1mnbwegWYbnAAE3E-721N8955.jpg (76 KB, 下载次数: 0)
2017-9-1 13:04 上传
4、 不支持c++11的新特性:
尝试写一个C++11特性的程序段tryCpp11.cc,使用了shared_ptr
# vim /tmp/tryCpp11.cc
#include
#include
int main()
{
std::shared_ptr pInt(new int(5));
std::cout << *pInt << std::endl;
return 0;
}
wKioL1mnbyeA8obUAAA61c8kDoA392.jpg (15.88 KB, 下载次数: 0)
2017-9-1 13:04 上传
# cd /tmp
# g++ -std=c++11 -o tryCpp11 tryCpp11.cc
wKiom1mnb1nwxxtbAABr-R5vrH4806.jpg (26.92 KB, 下载次数: 0)
2017-9-1 13:04 上传
二、下载gcc:
下载地址http://ftp.gnu.org/gnu/gcc/,版本gcc-6.4.0.tar.xz,或者# yum -y install wget
三、编译安装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
wKiom1mnb7jSJSgtAAInWvpJlaU617.jpg (132.54 KB, 下载次数: 0)
2017-9-1 13:04 上传
//通过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
wKiom1mnb-rimZVhAAMGmtoaqKw055.jpg (188.54 KB, 下载次数: 0)
2017-9-1 13:04 上传
=================================================================================
# ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
# make -j4 //-j4:make对多核处理器的优化选项,此步骤非常耗时
# make install
# ls /usr/local/bin | grep gcc
wKiom1mncBeiR6vzAACyAITrlqM262.jpg (44.01 KB, 下载次数: 0)
2017-9-1 13:03 上传
四、配置gcc:
# find / -name "libstdc++.so*"
wKiom1mncDyhHlTuAASqrHNDsjY738.jpg (282.88 KB, 下载次数: 0)
2017-9-1 13:03 上传
# 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
wKioL1mncFKTMMJLAACzSzfXzmo381.jpg (43.34 KB, 下载次数: 0)
2017-9-1 13:03 上传
2、 查看最新动态库:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
wKioL1mncGiAuIQSAAGiI3BGZHI500.jpg (100.9 KB, 下载次数: 0)
2017-9-1 13:03 上传
3、 支持c++11的新特性:
# cd /tmp
# g++ -std=c++11 -o tryCpp11 tryCpp11.cc
# ./tryCpp11
wKiom1mncJeil6sRAABc0vXdHgA197.jpg (23.95 KB, 下载次数: 0)
2017-9-1 13:03 上传