/usr/lib64/libstdc++.so.6:未找到版本`GLIBCXX_3.4.15'

Lau*_*nas 5 c++ linux gcc libstdc++ appium

我正在尝试运行appium测试.但是我得到错误说:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
Run Code Online (Sandbox Code Playgroud)

我正在使用RedHat6.6.当我跑:

strings /usr/lib/libstdc++.so.6 | grep GLIBC
Run Code Online (Sandbox Code Playgroud)

我明白了:

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.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
Run Code Online (Sandbox Code Playgroud)

是否有可能获得RedHat6.6的GLIBCXX_3.4.15?

小智 5

libstdc++.so.6您的程序似乎太旧了,您可以尝试更新您libstdc++.so.在我centos7,我libstdc++.so.6的链接libstdc++.so.6.0.19

libstdc++.so.6 -> libstdc++.so.6.0.19
Run Code Online (Sandbox Code Playgroud)

里面有字符串

[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
Run Code Online (Sandbox Code Playgroud)

也许你可以下载一个更新的版本并重新链接libstdc++.so.6,但你应该关心你系统中的其他程序是否仍能正常工作.

更新这个lib你应该小心翼翼,它可能需要新的问题,我已经更换了libc.so.6,然后所有命令都无法正常工作,我用/sbin/sln它来修复它.请参阅glibc:elf文件OS ABI无效


pkgs.org下载libstdc ++ ,然后解压缩.

rpm2cpio libstdc++-4.9.2-1.fc21.x86_64.rpm |cpio -idmv
cp ./usr/lib64/libstdc++.so.6.0.20 /usr/lib64
Run Code Online (Sandbox Code Playgroud)

也许你可以LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20在执行程序之前使用它.像这样

LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20 ls -hl
Run Code Online (Sandbox Code Playgroud)

或者export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20,但我不确定它会起作用.

如果你重新接触libstdc++.so.6,要小心.