问题描述
我正在尝试运行 appium 测试.但是我收到错误说明:
I am trying to run appium tests. However I get error saying what:
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
我使用的是 RedHat6.6.当我跑步时:
I am using RedHat6.6. When I run:
strings /usr/lib/libstdc++.so.6 | grep GLIBC
我明白了:
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
是否可以为 RedHat6.6 获取 GLIBCXX_3.4.15?
Is it possible to get GLIBCXX_3.4.15 for RedHat6.6?
推荐答案
看来你的libstdc++.so.6
对你的程序来说太旧了,你可以尝试更新你的libstdc++.so
.在我的 centos7
中,我的 libstdc++.so.6
链接到 libstdc++.so.6.0.19
It seems that your libstdc++.so.6
is too old for your program, You can try to update you libstdc++.so
. In my centos7
, my libstdc++.so.6
is linked to 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
,但是您应该关心系统中的其他程序是否仍然可以正常工作.
Maybe you could download a newer version and relink the libstdc++.so.6
, but you should care about are other programs in you system still work well.
更新这个lib你要小心翼翼,可能会出现新问题,我已经替换了libc.so.6
,然后所有命令都无法工作,我使用了/sbin/sln
修复它.参见 glibc: elf 文件操作系统 ABI 无效
Update this lib you should vary careful, It may take new problems, I had replaced the libc.so.6
, then all commands can't work, I used /sbin/sln
fix it. See glibc: elf file OS ABI invalid
从 下载 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
.像这样
Maybe you can use LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20
before you execute your program. Like this
LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20 ls -hl
或者 export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20
,但我不确定它会起作用.
Or export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20
, but I'm not certain it will work.
如果您重新链接 libstdc++.so.6
,请小心.
If you relink the libstdc++.so.6
, be careful.
这篇关于/usr/lib64/libstdc++.so.6:未找到版本“GLIBCXX_3.4.15"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!