Coba binary-exec
Contoh:
~$ 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)
Untuk menemukan apa yang dibutuhkan secara langsung:
readelf -d APP | grep NEEDED
ldd
seperti yang disebutkan di tempat lain akan menampilkan semua lib langsung dan tidak langsung - semua yang dibutuhkan saat runtime. Ini mungkin bukan daftar lengkap, karena Anda dapat membuka sesuatu secara dinamis dengan dlopen(), tetapi ini harus bekerja 99% dari waktu.
ld dan libtool digunakan pada waktu kompilasi/tautan. Mereka tidak berguna setelah Anda memiliki aplikasi.
EDIT Saya dapat melihat jawaban selanjutnya yang Anda tanyakan tentang OSX, tetapi saya ingin menambahkan jawaban saya di alat Linux:
Satu hal yang saya lupa sebutkan, beberapa waktu yang lalu; Anda bertanya tentang versi. Baik ldd
maupun readelf
akan menjawab pertanyaan "versi apa". Mereka akan memberi tahu Anda nama file perpustakaan yang Anda cari, dan konvensi penamaan mungkin memiliki beberapa info versi, tetapi tidak ada yang memaksakan ini. Simbol mungkin berversi, dan Anda harus melakukan lebih banyak tentang level yang lebih rendah dengan nm
untuk melihat ini,
Cara lain adalah dengan menggunakan objdump.
objdump -x "biner" | grep DIPERLUKAN
Ini menunjukkan semua dependensi yang diperlukan hanya untuk biner ini. Sangat berguna.