执行二进制文件:找不到"GLIBCXX_3.4.11"

Bar*_*art 10 unix gcc opencv glibc

我正在尝试运行一些预编译的代码但是我收到以下错误:

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

我搜索了错误,发现有些人通过删除libstdc++.so.6并添加指向的新动态链接来解决类似的问题usr/local/lib.但是我在系统上没有root访问权限我正在尝试运行它,因此我无法在该目录中添加/删除文件.

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

更新:
我尝试添加的另一个版本的目录libstdc++.so.6LD_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)
Run Code Online (Sandbox Code Playgroud)

显然opencv使用了不同的glibcxx版本,所以切换到另一个libstdc休息opencv.有没有解决这个问题的方法?

Fra*_*itt 4

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