Jaki jest odpowiednik Linuksa w ldd
systemie Windows?
Odpowiedzi:
Oto Dependency Walker.
dumpbin
Polecenie może być przydatne do wielu rzeczy, chociaż w tym przypadku zależność Walker jest prawdopodobnie nieco bardziej gadatliwy.
dumpbin /dependents some.dll
Przykładowe dane wyjściowe:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Static Analysis Tools> dumpbin / dependents StanPolicy.dll
Zrzut pliku StanPolicy.dll
Typ pliku: DLL
Obraz ma następujące zależności:
mscoree.dll
Podsumowanie
2000 .reloc 2000 .rsrc 1E000 .text
lub narzędzie GNU:
i586-mingw32msvc-objdump -p *.exe | grep 'DLL Name:'
ldd
robi.
PowerShell może to zrobić
PS> Start-Process -PassThru calc.exe | Get-Process -Module Rozmiar (K) ModuleName ------- ---------- 908 calc.exe 1700 ntdll.dll 1148 kernel32.dll 432 KERNELBASE.dll 13856 SHELL32.dll ...
Jeśli używasz, wine
a nie prawdziwego systemu Windows, możesz użyć WINEDEBUG=+loaddll wine <program>
.
GdiplusStartup
, a GDI + działało bez problemów w Wine, podczas gdy w systemie Windows nie. Zauważyłem ten błąd dopiero po debugowaniu programu w Wine, próbując następnie uruchomić go w systemie Windows.
Jest teraz ldd
w Cygwin. Jeśli masz bardzo starą wersję Cygwin, będziesz musiał użyć cygcheck
.
Wydaje mi się, że sposobem programisty Windows jest użycie dumpbin /dependents source.exe
. Jeśli masz Visual Studio zainstalowany można go znaleźć tutaj: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe
.
Nowsze wersje Gita dla Windows są dostarczane z czymś, co nazywa się Git BASH , które emuluje wiele przydatnych poleceń Unix, w tym ldd.
Wygląda na to, że zgłasza tylko biblioteki, które można znaleźć. Możesz więc użyć tego, aby uzyskać przegląd lokalizacji używanych bibliotek, ale nie tych, których brakuje.
W przypadku systemu Windows 10 można użyć zależności - nowoczesnego narzędzia Dependency Walker o otwartym kodzie źródłowym
W przypadku systemu Windows 10 w programie Visual Studio 2017 przechodzę do paska wyszukiwania okien i wpisuję:
„Developer Command Prompt for VS 2017” (specjalny cmd.exe dla programistów Visual Studio)
Pozwala to uzyskać dostęp do DUMPBIN, którego należy używać ze znacznikiem \ IMPORTS. Na przykład w odpowiednim katalogu:
DUMPBIN \ IMPORTS yourfile.exe (inne rozszerzenia też mogą działać)
Dla mnie ta lista DLL i używane funkcje.
Alternatywnie możesz użyć znacznika \ ALL, który jest znacznie bardziej szczegółowy.
zobacz wyjaśnienie Microsoft DUMPBIN:
https://docs.microsoft.com/en-us/cpp/build/reference/imports-dumpbin?view=vs-2019