unix – 执行二进制:`GLIBCXX_3.4.11’未找到

前端之家收集整理的这篇文章主要介绍了unix – 执行二进制:`GLIBCXX_3.4.11’未找到前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图运行一些预编译代码,但是我收到以下错误
./bin/stipdet: /cm/shared/apps/gcc/4.3.4/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./bin/stipdet)

我googleogog错误,看到有些人解决了类似的问题,删除libstdc .so.6并添加一个新的动态链接指向usr / local / lib.但是我在系统上没有root访问权限,因此我无法在该目录中添加/删除文件.

有谁知道另一种方式来解决这个问题?

更新:
我尝试将另一个版本的libstdc .so.6的目录添加到LD_PRELOAD,但是它对我来说不起作用,它仍然使用错误目录下的文件.

当您将正确的目录添加到LD_LIBRARY_PATH时也会发生这种情况.最后,我还尝试从LD_LIBRARY_PATH中删除所有其他内容,然后添加正确的目录(只是为了尝试).这似乎修复了原来的错误
但是现在我在另一个位置得到相同的错误

./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)

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

如果您在其他位置(例如,在您的主目录中)安装了正确的libstdc .so.6版本,您可以设置LD_LIBRARY_PATH或使用LD_PRELOAD,请参阅
What is the LD_PRELOAD trick?

猜你在找的Bash相关文章