C

共享庫的“哪個”等效項

  • October 7, 2011

我正在尋找一個與 行為方式相同的實用程序which,但要在 $LD_LIBRARY_PATH 中定義的目錄中查找共享庫 (*.so)?

如果您有一個執行檔並且您想查看它在哪裡拾取庫,請執行

ldd /path/to/executable

這將考慮預設搜尋路徑上的庫以及此執行檔的rpath中的庫(如果有)。

在 Linux 上,系統庫的路徑被記憶體以提高效率。/sbin/ldconfig -p顯示記憶體的內容(它儲存在 中/etc/ld.so.cache)。這是一個顯示庫位置的腳本:

#!/bin/sh
if [ -n "$LD_LIBRARY_PATH" ]; then
 set -f
 IFS=:
 for d in $LD_LIBRARY_PATH; do
   if [ -e "$d/$1" ]; then echo "$1"; fi
 done
fi
/sbin/ldconfig -p |
awk -v needle="$1" '$1 == needle {sub(/.* => /, ""); print}'

引用自:https://unix.stackexchange.com/questions/22178