1、查看当前centos版本: cat /etc/redhat-release
2、 安装centos6.9默认的开发工具,包含gcc,g++,make等等一系列工具:
yum groupinstall "Development Tools"
3、 查看默认动态库: strings /usr/lib64/libstdc++.so. | grep GLIBC
[root@noi ~]# strings /usr/lib64/libstdc++.so. | grep GLIBC
GLIBCXX_3.
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.
GLIBC_2.
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..tar.xz -C /usr/src
# cd /usr/src/gcc-7.3.
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. libstdc++.so..old
# ln -sv libstdc++.so.6.0. libstdc++.so.
9、 查看升级后的gcc版本(有时可能需要重启服务器才能看到更新后的版本):# gcc --version
10、 查看最新动态库:# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
11、有时候在VPS上编译时,常常因为内存不足导致以下错误提示:
make[]: *** [s-attrtab] Killed
make[]: Leaving directory `/root/download/gcc-4.9./objdir/gcc'
make[]: *** [all-stage1-gcc] Error
make[]: Leaving directory `/root/download/gcc-4.9./objdir'
make[]: *** [stage1-bubble] Error
make[]: Leaving directory `/root/download/gcc-4.9./objdir'
make: *** [all] Error
重新启动以下就好了。
本文参考:https://www.linuxidc.com/Linux/2017-10/147256.htm