Що є еквівалентом Linux у ldd
Windows?
Відповіді:
Ось Dependency Walker.
dumpbin
Команда може бути корисна для багатьох речей, хоча в цьому випадку залежність ходок, ймовірно, трохи більш багатослівним.
dumpbin /dependents some.dll
Приклад виводу:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Static Analysis Tools> dumpbin / dependents StanPolicy.dll
Дамп файлу StanPolicy.dll
Тип файлу: DLL
Зображення має такі залежності:
mscoree.dll
Резюме
2000 .reloc 2000 .rsrc 1E000 .text
або інструмент GNU:
i586-mingw32msvc-objdump -p *.exe | grep 'DLL Name:'
ldd
це робить.
PowerShell може це зробити
PS> Почати процес -PassThru calc.exe | Get-Process -Module Розмір (K) Назва модуля ------- ---------- 908 calc.exe 1700 ntdll.dll 1148 kernel32.dll 432 KERNELBASE.dll 13856 SHELL32.dll ...
Якщо ви використовуєте, wine
а не справжню Windows, ви можете використовувати WINEDEBUG=+loaddll wine <program>
.
GdiplusStartup
, і GDI + працював без проблем у Wine, тоді як у Windows ні. Цю помилку я помітив лише після того, як налагодив програму у Wine, намагаючись поруч запустити її у Windows.
Зараз є ldd
в Cygwin. Якщо у вас дуже стара версія Cygwin, вам доведеться використовувати cygcheck
.
Я думаю, що спосіб для розробника Windows - це використовувати dumpbin /dependents source.exe
. Якщо у вас є Visual Studio встановлена , ви можете знайти його тут: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe
.
Новіші версії Git для Windows постачаються з Git BASH , який емулює багато корисних команд Unix, включаючи ldd.
Здається, він повідомляє лише про ті бібліотеки, які можна знайти. Таким чином, ви можете використовувати це, щоб отримати огляд того, де розташовані використовувані бібліотеки, але не які відсутні.
Для Windows 10 ви можете використовувати Dependencies - сучасний Dependency Walker із відкритим кодом
Для Windows 10, з Visual Studio 2017, я заходжу в рядок пошуку Windows і вводжу:
"Командний рядок розробника для VS 2017" (спеціальний cmd.exe для розробника Visual Studio)
Це дозволяє отримати доступ до DUMPBIN, який слід використовувати з тегом \ IMPORTS. Наприклад, у правильному каталозі:
DUMPBIN \ IMPORTS yourfile.exe (інші розширення також можуть працювати)
Для мене цей список DLL та використовувані функції.
Крім того, ви можете використовувати тег \ ALL, який є набагато детальнішим.
див. пояснення Microsoft щодо DUMPBIN:
https://docs.microsoft.com/en-us/cpp/build/reference/imports-dumpbin?view=vs-2019
Приклад (лише з частиною) вмісту, надісланого назад командою