【问题标题】:What is .lib file contain while generating DLL生成 DLL 时 .lib 文件包含什么
【发布时间】:2014-12-23 08:30:51
【问题描述】:

我正在 Visual Studio 2010 中生成 .dll。正在输出文件夹中生成 .lib、.dll、.pdb 文件。

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

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

提前感谢:)

【问题讨论】:

标签: c++ dll


【解决方案1】:

.lib.dll 不是静态库。它告诉链接器lib 中的函数将从dll 加载。通过这种方式,它创建了对 dll 的依赖。找不到 dll 将导致应用程序退出(在启动时进行检查)。

用于dll的隐式链接。

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

【讨论】:

    【解决方案2】:

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

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

    这个 .pdb 文件是什么,它包含什么以及它有什么用处?

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

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

    0x00002130
    

    使用 PDB

    0x00002130 yourprogram!function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      相关资源
      最近更新 更多