/usr/lib64/libstdc++.so.6版本回退异常解决

内容目录

libstdc++.so.6

libstdc++.so.6是一个共享库文件,它是GNU编译器集合(GCC)的一部分。它包含了C++语言的标准库的实现,提供了许多C++语言的基本函数和数据结构,为C++程序员提供了丰富的编程工具和库。

服务器版本

centos6 (老生产环境,没的办法)

需求产生

有时候安装rpm 或者安装环境时候也正常安装,但是启动就出问题了
这时候就需要排查
后面发现GCC libstdc++.so.6 版本缩回去了

[root@Test ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
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

检查文件

发现软连接不对连到libstdc++.so.6.0.13

[root@Testi ~]# ls -l /usr/lib64/|grep libstdc
lrwxrwxrwx   1 root root       36 Feb  3  2023 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13
-rwxr-xr-x.  1 root root   987096 Jun 19  2018 libstdc++.so.6.0.13

检查/usr/local/lib64有其他版本libstdc++.so.6.0.20

[root@Test ~]# ls -l /usr/local/lib64其他版本/|grep libstdc
-rw-r--r-- 1 root root  16954172 Dec 31  2020 libstdc++.a
-rwxr-xr-x 1 root root       965 Dec 31  2020 libstdc++.la
lrwxrwxrwx 1 root root        19 Dec 31  2020 libstdc++.so -> libstdc++.so.6.0.20
lrwxrwxrwx 1 root root        19 Dec 31  2020 libstdc++.so.6 -> libstdc++.so.6.0.20
-rwxrwxrwx 1 root root   6781214 Dec 31  2020 libstdc++.so.6.0.20
-rw-r--r-- 1 root root      2313 Dec 31  2020 libstdc++.so.6.0.20-gdb.py

解决方案

删除软连接重建

#删除软连接
/bin/rm -f /usr/lib64/libstdc++.so.6
#重建软连接
/bin/ln -s /usr/local/lib64/libstdc++.so.6.0.20  /usr/lib64/libstdc++.so.6

最后解决 显示GLIBCXX_3.4.20


[root@Test ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

公司的java服务最后能正常启动了
自己的系统安装路径不一样,根据自己系统情况修改命令,敏感操作,切记慎重
如果不是因为安装环境导致退版本,而是本身就是低版本,自行下载安装GCC

安装教程

[root@Test ~]# gcc --version
gcc (GCC) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

压缩包列表地址https://ftp.gnu.org/gnu/gcc/
参考安装教程 https://jdhao.github.io/2017/09/04/install-gcc-newer-version-on-centos/
示例命令

curl https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2 -O
tar jxvf gcc-5.4.0.tar.bz2
yum install gmp-devel mpfr-devel libmpc-devel
mkdir gcc-5.4.0-build
cd gcc-5.4.0-build
../gcc-5.4.0/configure --enable-languages=c,c++ --disable-multilib
make -j $(nproc) && make install

编辑vi /etc/profile 加入

export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

刷新重载系统环境变量

source /etc/profile

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注