Su Windows è disponibile uno strumento Depends.exe per rilevare la dipendenza di un file EXE/DLL su altri DDL. Quale strumento della riga di comando è equivalente su Mac OS e Linux?Rilevazione della dipendenza da libreria dinamica su Mac OS e Linux
risposta
- Mac OS X:
otool
-L
file di - Linux:
ldd
file di
Se questi comandi non forniscono ciò che si vuole, su Mac OS X è possibile scaricare tutto il caricare i comandi con otool
-l
file. Su Linux è possibile scaricare l'intero contenuto della sezione dinamica con readelf
-d
file.
provare ldd nel terminale. Questo ti fornirà una lista di librerie dinamiche di cui il binario ha bisogno.
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
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
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.
grazie mille Konrad! Lo proverò. – Viet
Wow! Funziona alla grande! Grazie mille! – Viet
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. –
@ 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