1、查看当前centos版本: cat /etc/redhat-release
2、 安装centos6.9默认的开发工具,包含gcc,g++,make等等一系列工具:
yum groupinstall "Development Tools"
3、 查看默认动态库: strings /usr/lib64/libstdc++.so.6 | grep GLIBC
[root@noi ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
4、下载gcc: wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
5、解压gcc:
# yum -y install xz # tar -xf gcc-7.3.0.tar.xz -C /usr/src # cd /usr/src/gcc-7.3.0
6、安装gcc的依赖软件,gcc的软件包内提供了自动下载需要软件的脚本: ./contrib/download_prerequisites
7、编译gcc
# ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib # make //多核电脑可以添加 “-j4” :make对多核处理器的优化选项,此步骤非常耗时 # make install # ls /usr/local/bin | grep gcc
8、配置gcc
[root@noi ~]# find /usr/src/gcc-7.3.0/ -name "libstdc++.so*"
/usr/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
# cd /usr/lib64 # cp /usr/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 . # mv libstdc++.so.6 libstdc++.so.6.old # ln -sv libstdc++.so.6.0.22 libstdc++.so.6
9、 查看升级后的gcc版本(有时可能需要重启服务器才能看到更新后的版本):# gcc --version
10、 查看最新动态库:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
11、有时候在VPS上编译时,常常因为内存不足导致以下错误提示:
make[3]: *** [s-attrtab] Killed make[3]: Leaving directory `/root/download/gcc-4.9.3/objdir/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory `/root/download/gcc-4.9.3/objdir' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/root/download/gcc-4.9.3/objdir' make: *** [all] Error 2
重新启动以下就好了。
本文参考:https://www.linuxidc.com/Linux/2017-10/147256.htm