Dan*_*ite 49

这是Dependency Walker.

http://dependencywalker.com/

  • 是否存在像ldd这样的东西,仅用于命令行?寻找我可以从提示中使用的东西.首选一个小灯命令,最好没有额外的DLL. (3认同)
  • 语法看起来像这样:depends.exe/c /oc:dependencies.csv /ot:dependencies.txt mydll.dll (3认同)
  • Dependency Walker工作得很好,但是从ldd的简单性来看是一个不和谐的变化(特别是如果你习惯于编写一个工具脚本消耗它的输出,比如用它自动打包任务). (3认同)
  • 它似乎有一个命令行界面:http://www.dependencywalker.com/help/html/hidr_command_line_help.htm (2认同)
  • 在Windows 10上崩溃。 (2认同)

RzR*_*RzR 33

或GNU工具:

i586-mingw32msvc-objdump -p  *.exe    | grep 'DLL Name:'
Run Code Online (Sandbox Code Playgroud)

  • objdump只显示文件包含的内容.它不会尝试像`ldd`那样进行任何路径查找. (3认同)

小智 30

dumpbin命令对许多事情都很有用,尽管在这种情况下,依赖者walker可能更加冗长.

dumpbin /dependents some.dll
Run Code Online (Sandbox Code Playgroud)

  • 如果您已安装Visual Studio,这是最佳选择。 (3认同)

小智 21

PowerShell可以做到这一点

PS > Start-Process -PassThru calc.exe | Get-Process -Module

   Size(K) ModuleName
   ------- ----------
       908 calc.exe
      1700 ntdll.dll
      1148 kernel32.dll
       432 KERNELBASE.dll
     13856 SHELL32.dll
           ...

  • 这似乎只在程序实际找到dll时才有效 - 如果失败,列表不完整. (4认同)

Jan*_*sen 12

如果您正在使用wine而不是真正的Windows,则可以使用WINEDEBUG=+loaddll wine <program>.

  • 针对Windows开发针对Windows的攻击让我感到非常奇怪,我不得不尝试一下(我主要针对Linux)......实际上它正在制定*远远超出我预期的原型设计.非常非常酷. (7认同)

Jan*_*sen 8

lddCygwin 现在有一个.如果你有一个非常古老的Cygwin版本,你将不得不使用cygcheck.

  • 是的,但是不太准确 (2认同)

Joh*_*mBF 7

我想Windows Developer的方法是使用dumpbin /dependents source.exe.如果安装了Visual Studio,可以在此处找到它:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe.

  • 不幸的是,这没有显示在哪里找到依赖项,因此您可以精确地查看在运行时实际上使用了哪些依赖项((.。 (2认同)

小智 7

对于 Windows 10,您可以使用 Dependencies - 开源的现代 Dependency Walker

https://github.com/lucasg/Dependencies


Mac*_*hta 6

Windows上较新版本的Git带有称为Git BASH的软件包,该软件包可模拟许多有用的Unix命令,包括ldd。

似乎它仅报告可以找到的库。因此,您可以使用它来获得使用过的库所在位置的概述,但不会缺少丢失的库。