![](/img/trans.png)
[英]Cannot find my shared library even though I have modified LD_LIBRARY_PATH
[英]LD_LIBRARY_PATH : how to find a shared object
我有一個共享的 object ( libxyz.so )。 給定 LD_LIBRARY_PATH,如何找到這個共享 object 的確切位置? 如果我有一個依賴於這個庫的二進制文件,我會在上面使用 ldd。
這就是我問的原因:我有一個 cgi 腳本,它在使用 LD_LIBRARY_PATH 設置為 VALUE1 時有效。 當路徑設置為 VALUE2 時,它不起作用。 我想找到 VALUE1 中路徑指定的庫的確切位置(請注意,VALUE1 有近 20 多個不同的位置)
平台:Linux
將其放在文件中:
#!/bin/bash
IFS=:
for p in ${LD_LIBRARY_PATH}; do
if [ -e ${p}/libxyz.so ]; then
echo ${p}
fi
done
並運行它。
您也可以使用ldd。 為此,您將:
export LD_LIBRARY_PATH=VALUE1
) ldd /path/to/prog | grep libxyz.so
ldd /path/to/prog | grep libxyz.so
睡覺(30); 在您的cgi中,從瀏覽器啟動它,然后在/ proc / $(pidof mycgi)/ maps中查找程序所使用的實際庫。
strace -f mycgiscript 2>&1 | grep libxyz.so
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.