Що є еквівалентом Linux у lddWindows?
Відповіді:
Ось 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
Приклад (лише з частиною) вмісту, надісланого назад командою