gpt4 book ai didi

windows - 检查运行时静态库或 dll 使用的是什么

转载 作者:可可西里 更新时间:2023-11-01 12:43:00 27 4
gpt4 key购买 nike

Windows SDK 中是否有工具可以检查库使用的 CRT?例如我有一个 *.lib 文件,如何检查它是用/MDd 标志还是/MT 编译的?还有如何检查 dll 或 exe 是否相同?这可以用 dumpbin 来完成吗?

最佳答案

如果是.lib文件,静态链接库,那你对CRT还一无所知。它还没有链接。你可以了解一下原程序员的意图,使用十六进制查看器查看.lib 文件,记事本也可以。您将看到用于编译嵌入在 .lib 文件中的 .obj 文件的原始命令行。只需搜索“cl.exe”,您就会很好地了解从 cl.exe 的路径使用的编译器版本。你可以看到命令行选项,这样你就会知道/MD 或/MT 是否有效。还有/O 选项,对于了解您拥有的是调试版还是发布版很重要。

如果它是一个 .dll 文件,那么 dumpbin.exe/imports 是您的最佳选择。对 msvcrxxx.dll 文件的依赖将是可见的,xxx 是版本号,如“120”。如果您看到它,那么该名称会告诉您是否使用了/MD 或/MDd,“d”附加到 CRT 的调试版本如果它丢失,那么您知道使用了/MT 或/MTd,没有关于构建 flavor 可用。

遵循库所有者的建议总是最好的,当 CRT 版本或库的build设置与您的不匹配时,您可能会遇到很多麻烦。 YMMV,您必须向他询问更新的可能性非零。

关于windows - 检查运行时静态库或 dll 使用的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25284513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com