回答:
ldd binary-execを試してください
例:
~$ ldd /bin/bash
linux-gate.so.1 => (0x00606000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00943000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00c5d000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x003e9000)
/lib/ld-linux.so.2 (0x00a41000)
直接必要なものを見つけるには:
readelf -d APP | grep NEEDED
ldd
他の場所で述べたように、すべての直接および間接ライブラリ-実行時に必要なすべてを表示します。dlopen()で動的に開くことができるため、これは完全なリストではない場合がありますが、これは99%の時間で動作するはずです。
ldおよびlibtoolは、コンパイル/リンク時に使用されます。アプリを作成したら、それらは役に立ちません。
編集あなたがOSXについて尋ねていた後の答えで見ることができますが、Linuxツールに関する私の答えに追加したいです:
かなり前に、私が言及するのを忘れていた一つのこと。バージョンについて尋ねました。「どのバージョン」の質問にldd
もreadelf
答えません。彼らはあなたが探しているライブラリのファイル名を教えてくれますし、命名規則は何らかのバージョン情報を持っているかもしれませんが、これを強制するものは何もありません。シンボルはバージョン管理されている可能性があり、nm
これらを表示するにはさらに低いレベルにする必要があります。