在 Windows 平台下开发 C++ 动态库时,通常会生成以下几种类型的文件:
DLL (Dynamic Link Library) 文件
-
作用:动态链接库的可执行文件,包含实际的代码和数据
-
特点:
-
在运行时被加载到进程内存中
-
可以被多个程序共享使用
-
支持隐式链接和显式链接两种使用方式
-
-
生成:由链接器从目标文件(.obj)创建
LIB 文件
分为两种类型:
导入库 (Import Library)
-
作用:包含 DLL 导出的函数和变量的符号信息
-
用途:
-
用于隐式链接(编译时链接)
-
提供链接器所需的信息,使程序知道如何调用 DLL 中的函数
-
-
特点:通常很小,只包含符号信息,不包含实际代码
静态库 (Static Library)
- 注意:与动态库无关,是另一种库形式
PDB (Program Database) 文件
-
作用:存储调试信息
-
包含内容:
-
变量名和函数名
-
源代码行号与二进制代码的映射
-
类型信息
-
-
用途:调试时提供源代码级别的调试体验
-
特点:
-
在 Release 模式下可以关闭生成以减小体积
-
调试时需确保 PDB 文件与 DLL 版本匹配
-
EXP 文件
-
作用:导出文件,是链接过程中的中间文件
-
用途:
-
包含 DLL 导出的符号信息
-
在创建 DLL 时,链接器会使用 EXP 文件中的信息
-
-
特点:
-
通常只在复杂链接场景下才会看到
-
大多数简单项目不会显式生成 EXP 文件
-