什么是.lib文件包含生成DLL时

时间:2014-12-23 08:30:52

标签: c++ dll

我在visual studio 2010中生成.dll。.lib,.dll,.pdb文件正在输出文件夹中生成。

  1. 为什么.lib(它是静态的lib吗?)与dll一起发展,它有什么用处和 实际包含什么?
    (在Linux中与.so一起,它不能有任何其他文件,但为什么在Windows中)。

  2. 这个.pdb文件是什么,它包含什么以及它将如何有用?

  3. 提前妥协:)

2 个答案:

答案 0 :(得分:3)

  

为什么.lib(它是静态的lib吗?)与dll一起生成,它的用途是什么以及它实际包含什么?

不,.lib是一个导入库,它用于隐式链接。

  

这是什么.pdb文件,它包含什么以及它将如何有用?

PDB文件包含符号&行信息,调试器使用它们将十六进制/八位字节地址映射到函数名称。构建项目时会生成PDB文件。

没有PDB,您的程序堆栈跟踪将如下所示

0x00002130

使用PDB

0x00002130 yourprogram!function

答案 1 :(得分:3)

.lib.dll一起不是静态库。它告诉链接器lib中存在的函数将从dll加载。这样,它就会产生对dll的依赖。未能找到dll将导致应用程序退出(在启动时检查)。

用于隐式链接dll。

调试器使用PDB文件来查找符号信息。