我试图运行一些预编译代码,但是我收到以下错误:
./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?
原文链接:https://www.f2er.com/bash/383876.htmlWhat is the LD_PRELOAD trick?