看来你的libstdc++.so.6
对于您的程序来说太旧了,您可以尝试更新您libstdc++.so
. In my centos7
, my libstdc++.so.6
链接到libstdc++.so.6.0.19
libstdc++.so.6 -> libstdc++.so.6.0.19
里面有弦
[root]#strings 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
也许您可以下载更新版本并重新链接libstdc++.so.6
,但您应该关心系统中的其他程序是否仍然运行良好。
更新这个库你应该小心,它可能会出现新的问题,我已经替换了libc.so.6
,那么所有命令都无法工作,我用了/sbin/sln
修理它。看glibc:elf 文件操作系统 ABI 无效
下载 libstdc++ 从pkgs.org,然后将其拆包。
rpm2cpio libstdc++-4.9.2-1.fc21.x86_64.rpm |cpio -idmv
cp ./usr/lib64/libstdc++.so.6.0.20 /usr/lib64
也许你可以使用LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20
在执行程序之前。像这样
LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20 ls -hl
Or export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20
,但我不确定它会起作用。
如果您重新链接libstdc++.so.6
, 当心。