Qual è l'equivalente di Linux lddsu Windows?
Risposte:
Ecco Dependency Walker.
Il dumpbincomando 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.dllSommario
2000 .reloc 2000 .rsrc 1E000 .text
o lo strumento GNU:
i586-mingw32msvc-objdump -p *.exe | grep 'DLL Name:'
lddfa.
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 winee non un vero Windows, puoi usare WINEDEBUG=+loaddll wine <program>.
GdiplusStartupe 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 lddin 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