执行二进制:未找到'GLIBCXX_3.4.11' [英] Executing binary: `GLIBCXX_3.4.11' not found

查看:221
本文介绍了执行二进制:未找到'GLIBCXX_3.4.11'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试运行一些预编译的代码,但出现以下错误:

  ./ bin / stipdet:/cm/shared/apps/gcc/4.3.4/lib64/libstdc++.so.6:版本'GLIBCXX_3.4.11'找不到(需要./bin/stipdet)

我搜索了这个错误,看到有些人通过删除 libstdc ++。so.6 并添加一个指向 usr / local / lib 的新动态链接。但我没有系统上的root访问权限,所以我不能在该目录中添加/删除文件。

有人知道解决这个问题的另一种方法吗?

UPDATE

我尝试添加另一个版本的 libstdc ++。so。 6 LD_PRELOAD ,但它不适用于我,它仍然使用错误目录中的文件。



当我将正确的目录前置到 LD_LIBRARY_PATH 时,会发生同样的情况。最后,我还尝试从 LD_LIBRARY_PATH 中删除​​所有其他内容,然后添加正确的目录(只是为了尝试)。这似乎解决了原来的错误!
但现在我在其他位置出现同样的错误:

  ./ bin / stipdet:/ usr /lib64/libstdc++.so.6:未找到'GLIBCXX_3.4.9'版本(需要/var/scratch/user/local/lib/libopencv_features2d.so.2.2)

显然 opencv 使用不同的 glibcxx 版本,所以切换到另一个 libstdc 中断 opencv 。有没有办法解决这个问题?

解决方案

如果你有正确版本的libstdc ++。so.6在其他地方安装例如在您的主目录中),您可以设置LD_LIBRARY_PATH或使用LD_PRELOAD,请参阅
什么是LD_PRELOAD技巧?


I'm trying to run some pre-compiled code but I'm getting the following error:

./bin/stipdet: /cm/shared/apps/gcc/4.3.4/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./bin/stipdet)

I googled the error and saw that some people solved similar problems by deleting the libstdc++.so.6 and adding a new dynamic link pointing to usr/local/lib. But I don't have root access on the system I'm trying to run this on, so I can't add/delete files in that directory.

Does anyone know another way to solve this problem?

UPDATE:
I tried adding the directory of another version of libstdc++.so.6 to the LD_PRELOAD, but it didn't work for me, it still uses the file from the wrong directory.

The same happens when I prepend the correct directory to the LD_LIBRARY_PATH. Finally, I also tried to remove everything else from the LD_LIBRARY_PATH and then add the correct directory (just to try). This seemed to fix the original error! But now I'm getting the same error at a different location:

./bin/stipdet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /var/scratch/user/local/lib/libopencv_features2d.so.2.2)

Apparently opencv uses a different glibcxx version, so switching to another libstdc breaks opencv. Is there any way around this problem?

解决方案

If you've got the correct version of libstdc++.so.6 installed elsewhere (e.g. in your home directory), you can either set LD_LIBRARY_PATH or use LD_PRELOAD, see What is the LD_PRELOAD trick?

这篇关于执行二进制:未找到'GLIBCXX_3.4.11'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆