GNU/Linux >> Linux の 問題 >  >> Linux

共有ライブラリの「どれ」に相当しますか?

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}'

Linux
  1. Linux 共有ライブラリのストリッピング

  2. 共有メモリの一貫性のためのロック メカニズム

  3. 特定のプロセスの実行時にどの共有ライブラリがロードされているかを確認する方法は?

  1. 共有ライブラリを構築するための「soname」オプションは何ですか?

  2. 共有ライブラリの読み込み中にエラーが発生しました:libncurses.so.5:

  3. Mac での Alt+Dot の同等/代替

  1. 共有ライブラリの読み込み中にエラーが発生しましたlibcrypto.so.1.1–OpenSSL[修正]

  2. Find In Aixの同等のMaxdepth?

  3. IPv6 に相当する arping