查看本地GLIBCXX版本,的确没有GLIBCXX_3.4.20
[root@localhost sm-homo-test]# 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
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
查看当前gcc版本是4.8.5
[root@localhost sm-homo-test]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
查看当libstdc++.so.6版本是libstdc++.so.6.0.19
[root@localhost lib64]# ll /usr/lib64/libstdc++.so.6
lrwxrwxrwx. 1 root root 19 Jun 4 2021 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
安装更高版本的gcc,一可以单独安装gcc包(可以参照文章CentOS 7.6 下 “GLIBCXX_3.4.20” "GLIBCXX_3.4.21" not found_叶子_Jane的博客-CSDN博客_glibcxx 源码),二可以安装devtoolset,它会连带安装上gcc
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash
各版本的devtoolset查看这里 Directory — Software Collections
这里devtoolset-7安装后,gcc -v 查看到gcc的版本是7
全局查找,发现更新的版本libstdc++.so.6.0.25
[root@localhost 下载]# find / -name libstdc++.so.6*
find: '/run/user/1001/gvfs': Permission denied
find: '/run/user/1000/gvfs': Permission denied
/var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/lib64/libstdc++.so.6
/var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/lib64/libstdc++.so.6.0.25
/var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/share/gdb/auto-load/usr/lib64/__pycache__/libstdc++.so.6.0.25-gdb.cpython-36.opt-1.pyc
/var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/share/gdb/auto-load/usr/lib64/__pycache__/libstdc++.so.6.0.25-gdb.cpython-36.pyc
/var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.25-gdb.py
/var/lib/docker/overlay2/2ca4592243ee705ca1ef3e768c7371bd97ace073b8369cecde99b6908b9b9ae0/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/var/lib/docker/overlay2/2ca4592243ee705ca1ef3e768c7371bd97ace073b8369cecde99b6908b9b9ae0/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
/var/lib/docker/overlay2/2ca4592243ee705ca1ef3e768c7371bd97ace073b8369cecde99b6908b9b9ae0/diff/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/opt/rh/devtoolset-7/root/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
拷贝后重建软链接,再查看有GLIBCXX_3.4.20了
[root@localhost lib64]cp /var/lib/docker/overlay2/b7beab98064893a8b40f65b95eec1e70129ce68c1f17c65dfdc6e83d5ae4f6f5/diff/usr/lib64/libstdc++.so.6.0.25 /usr/lib64/
[root@localhost lib64]# ll /usr/lib64/libstd*
lrwxrwxrwx. 1 root root 19 Jun 4 2021 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 995840 Sep 30 2020 /usr/lib64/libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 1661376 Apr 19 19:28 /usr/lib64/libstdc++.so.6.0.25
[root@localhost lib64]# mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6_old
[root@localhost lib64]# ln -s /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6
[root@localhost lib64]# 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
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
GA+GLIBCXX_ASSERTIONS
更进一步要升级GLIBC的版本,可以参看centos7升级gcc&glibc(踩坑)_yutenys的博客-CSDN博客_centos7 升级glibc
如果gcc升级到了7,和上文不同,不用强制一定要安装9
注意GLIBC和GLIBCXX不同,因为发现参照上文GLIBC由2.17升级到2.31(ldd --version查看)后GLIBCXX并没有有改变。
[root@localhost build]# ll /usr/lib64/libc.so.6
lrwxrwxrwx. 1 root root 12 Apr 19 18:59 /lib64/libc.so.6 -> libc-2.31.so
[root@localhost build]# strings /usr/lib64/libc.so.6|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_PRIVATE
___sys_errlist_GLIBC_2_3
___sys_errlist_GLIBC_2_4
___sys_errlist_GLIBC_2_1
___sys_nerr_GLIBC_2_1
___sys_nerr_GLIBC_2_3
___sys_nerr_GLIBC_2_4
___sys_nerr_GLIBC_2_3
___sys_nerr_GLIBC_2_4
___sys_nerr_GLIBC_2_1
__bdflush_GLIBC_2_0
_IO_vfwscanf@GLIBC_2.2.5
___sys_errlist_GLIBC_2_1
___sys_errlist_GLIBC_2_4
___sys_errlist_GLIBC_2_3
xdrmem_create@GLIBC_2.2.5
_IO_file_seekoff@@GLIBC_2.2.5
省略