Qual è l'equivalente di Linux ldd
su Windows?
Risposte:
Ecco Dependency Walker.
Il dumpbin
comando può essere utile per molte cose, anche se in questo caso il walker delle dipendenze è probabilmente un po 'più dettagliato.
dumpbin /dependents some.dll
Output di esempio:
C: \ Programmi (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Static Analysis Tools> dumpbin / dependents StanPolicy.dll
Dump del file StanPolicy.dll
Tipo di file: DLL
L'immagine ha le seguenti dipendenze:
mscoree.dll
Sommario
2000 .reloc 2000 .rsrc 1E000 .text
o lo strumento GNU:
i586-mingw32msvc-objdump -p *.exe | grep 'DLL Name:'
ldd
fa.
PowerShell può farlo
PS> Avvia processo -PassThru calc.exe | Get-Process -Module Dimensione (K) ModuleName ------- ---------- 908 calc.exe 1700 ntdll.dll 1148 kernel32.dll 432 KERNELBASE.dll 13856 SHELL32.dll ...
Se stai usando wine
e non un vero Windows, puoi usare WINEDEBUG=+loaddll wine <program>
.
GdiplusStartup
e GDI + ha funzionato senza problemi in Wine, mentre su Windows no. Ho notato questo errore solo dopo aver eseguito il debug del programma in Wine, cercando successivamente di eseguirlo in Windows.
Ora c'è un ldd
in Cygwin. Se hai una versione di Cygwin molto vecchia, dovrai usare cygcheck
.
Immagino che il modo per fare questo per gli sviluppatori di Windows sia usare dumpbin /dependents source.exe
. Se si dispone di Visual Studio installata si può trovare qui: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe
.
Le versioni più recenti di Git su Windows vengono fornite con qualcosa chiamato Git BASH , che emula molti utili comandi Unix incluso ldd.
Sembra che riporti solo le biblioteche che possono essere trovate. Quindi puoi usarlo per avere una panoramica di dove si trovano le librerie utilizzate, ma non quali mancano.
Per Windows 10 puoi usare le dipendenze: un moderno Dependency Walker open source
Per Windows 10, con Visual Studio 2017, vado nella barra di ricerca di Windows e digito:
"Prompt dei comandi per sviluppatori per VS 2017" (un cmd.exe speciale per gli sviluppatori di Visual Studio)
Ciò consente di accedere a DUMPBIN che dovrebbe essere utilizzato con il tag \ IMPORTS. Ad esempio, nella directory corretta:
DUMPBIN \ IMPORTS yourfile.exe (anche altre estensioni potrebbero funzionare)
Per me, questo elenca la DLL e le funzioni utilizzate.
In alternativa, puoi utilizzare il tag \ ALL che è molto più dettagliato.
vedere la spiegazione di Microsoft di DUMPBIN:
https://docs.microsoft.com/en-us/cpp/build/reference/imports-dumpbin?view=vs-2019
Esempio (con solo una parte) del contenuto restituito dal comando