Windows平台上的静态库与导入库

cob*_*e24 9 windows static-libraries visual-c++

我怎么能告诉一个.lib文件是一个静态库vs一个DLL的导入库?有没有可以做到这一点的工具或命令?

第二个问题是我如何检查静态库的依赖关系,我的意思是我怎么知道这个静态库中包含哪些DLL?

感谢您的帮助.

最好的祝福,

typ*_*gic 6

只给定一个wtf.lib文件,问题是判断这个库文件是静态库还是导入库我当前执行此操作的方法是(通过 DOS 提示符和Cygwin Bash shell的组合)。

在 DOS 提示符下,需要正确运行dumpbin.exe

dumpbin -all wtf.lib > wtf.lib.txt

然后,在 Cygwin shell 中:

grep 'Archive member name' wtf.lib.txt

如果输出grep输出一个 DLL 文件名,那么它wtf.lib就是一个导入库。否则,它是一个独立的静态库


Cal*_*ius 5

导入库将为您的程序添加DLL依赖项.如果您没有DLL,您的程序将无法启动.(您可以使用Dependency Walker获取程序的DLL名称依赖).

Afaik静态库没有依赖项.它们链接到程序中,只有链接器错误会告诉您该特定库是否依赖于另一个库.(至少在GCC中,我不知道想要的是MS工具的行为.)

  • 静态库通常至少具有基本系统库(ntdll.dll等)的DLL依赖关系,并且还可能具有语言运行库的依赖关系,例如msvcrt.dll. (4认同)