Tryldd binary-exec
Příklad:
~$ 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)
Chcete-li najít, co přímo potřebuje:
readelf -d APP | grep NEEDED
ldd
jak je uvedeno jinde, zobrazí všechny přímé a nepřímé knihovny - vše, co potřebuje za běhu. Toto nemusí být úplný seznam, protože věci můžete dynamicky otevírat pomocí dlopen(), ale to by mělo fungovat 99% času.
ld a libtool se používají při kompilaci/propojení. Jakmile máte aplikaci, nejsou užitečné.
UPRAVIT Podle pozdějších odpovědí vidím, že jste se ptali na OSX, ale ke své odpovědi o nástrojích Linuxu chci přidat:
Jednu věc jsem zapomněl zmínit, před docela chvílí; ptal jste se na verze. Ani ldd
ani readelf
odpoví na otázku „jaká verze“. Řeknou vám název souboru knihovny, kterou hledáte, a konvence pojmenování může mít nějaké informace o verzi, ale nic to nevynucuje. Symboly mohou být verzovány a museli byste mít mnohem nižší úroveň s nm
vidět tyto,
Dalším způsobem by bylo použití objdump.
objdump -x "binární" | grep POTŘEBUJEME
To ukazuje všechny potřebné závislosti pouze pro tento binární soubor. Velmi užitečné.