Windows 上的 Linux 相当于什么ldd
?
10 回答
Here is Dependency Walker.
该dumpbin
命令对很多事情都很有用,尽管在这种情况下,dependency walker 可能有点冗长。
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:'
如果您使用wine
而不是真正的 Windows,则可以使用WINEDEBUG=+loaddll wine <program>
.
现在ldd
在 Cygwin 中有一个。如果您有一个非常旧的 Cygwin 版本,则必须使用cygcheck
.
我猜 Windows 开发人员的方法是使用dumpbin /dependents source.exe
. 如果你安装了 Visual Studio,你可以在这里找到它:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe
.
Windows 上较新版本的 Git 包含一个名为Git BASH的东西,它模拟了许多有用的 Unix 命令,包括 ldd。
它似乎只报告可以找到的库。因此,您可以使用它来概览使用的库所在的位置,而不是缺少哪些。
对于 Windows 10,您可以使用 Dependencies - 一个开源的现代 Dependency Walker
在 Windows 上,我使用 cmder 作为大多数事情的终端(而不是 powershell/pwsh)。对于cmder,您只需键入“ldd my_executable.exe”,您将看到预期的输出。
cmder下载链接:https ://cmder.net/
对于 Windows 10,使用 Visual Studio 2017,我进入 Windows 的搜索栏并输入:
“VS 2017 的开发人员命令提示符”(Visual Studio 开发人员的特殊 cmd.exe)
这允许访问应该与 /IMPORTS 标记一起使用的 DUMPBIN。例如,在正确的目录中:
DUMPBIN /IMPORTS yourfile.exe(其他扩展也可以工作)
对我来说,这列出了 DLL 和使用的函数。
或者,您可以使用更详细的标签 \ALL。
参见微软对 DUMPBIN 的解释:
https://docs.microsoft.com/en-us/cpp/build/reference/imports-dumpbin?view=vs-2019