我有一个共享对象(libxyz.so)。给定LD_LIBRARY_PATH,如何找到此共享对象的确切位置?如果我有一个依赖于这个lib的二进制文件,我会使用ldd。
这就是我问的原因: 我有一个cgi脚本,当使用LD_LIBRARY_PATH设置为VALUE1时,它可以工作。当路径设置为VALUE2时,它不起作用。我想找到VALUE1中路径指定的库的确切位置(请注意,VALUE1有近20个不同的位置)
平台:Linux
答案 0 :(得分:10)
把它放在一个文件中:
#!/bin/bash
IFS=:
for p in ${LD_LIBRARY_PATH}; do
if [ -e ${p}/libxyz.so ]; then
echo ${p}
fi
done
并运行它。
答案 1 :(得分:4)
您也可以使用ldd。要做到这一点,你会:
export LD_LIBRARY_PATH=VALUE1
)ldd /path/to/prog | grep libxyz.so
答案 2 :(得分:0)