2009-06-29 4 views

risposta

94
  • Mac OS X: otool-Lfile di
  • Linux: lddfile di

Se questi comandi non forniscono ciò che si vuole, su Mac OS X è possibile scaricare tutto il caricare i comandi con otool-lfile. Su Linux è possibile scaricare l'intero contenuto della sezione dinamica con readelf-dfile.

+0

Wow! Funziona alla grande! Grazie mille! – Viet

+1

Che dire delle librerie statiche? Ho provato 'otool -L' ma tutto ciò che fa è elencare un po 'di file .o che sono usati per costruire la libreria. –

+0

@ user3055655: le dipendenze delle librerie dinamiche vengono create durante il collegamento. Poiché una libreria di archivi statici non è ancora stata collegata, non avrebbe alcuna dipendenza di libreria dinamica. – mark4o

6

provare ldd nel terminale. Questo ti fornirà una lista di librerie dinamiche di cui il binario ha bisogno.

+0

Grazie per la pronta risposta! Era semplice come: ldd/path/to/executable_or_dylib e la versione dettagliata: ldd -v/path/to/executable_or_dylib – Viet

+1

Funziona perfettamente per i file eseguibili. Quando eseguo ldd aDynamicLib.so in Ubuntu 9.04, si dice: "non è un eseguibile dinamico". Come scoprire le dipendenze di un file .so? Grazie in anticipo! – Viet

9

Si può anche provare MacDependency (http://macdependency.googlecode.com) che fornisce una sostituzione dell'interfaccia utente per otool su MacOS X. Mostra alberi di dipendenza completi e anche i simboli esportati.

+0

grazie mille Konrad! Lo proverò. – Viet