C++:动态库相关文件

在 Windows 平台下开发 C++ 动态库时,通常会生成以下几种类型的文件:

  • 作用:动态链接库的可执行文件,包含实际的代码和数据

  • 特点

    • 在运行时被加载到进程内存中

    • 可以被多个程序共享使用

    • 支持隐式链接和显式链接两种使用方式

  • 生成:由链接器从目标文件(.obj)创建

LIB 文件

分为两种类型:

导入库 (Import Library)

  • 作用:包含 DLL 导出的函数和变量的符号信息

  • 用途

    • 用于隐式链接(编译时链接)

    • 提供链接器所需的信息,使程序知道如何调用 DLL 中的函数

  • 特点:通常很小,只包含符号信息,不包含实际代码

静态库 (Static Library)

  • 注意:与动态库无关,是另一种库形式

PDB (Program Database) 文件

  • 作用:存储调试信息

  • 包含内容

    • 变量名和函数名

    • 源代码行号与二进制代码的映射

    • 类型信息

  • 用途:调试时提供源代码级别的调试体验

  • 特点

    • 在 Release 模式下可以关闭生成以减小体积

    • 调试时需确保 PDB 文件与 DLL 版本匹配

EXP 文件

  • 作用:导出文件,是链接过程中的中间文件

  • 用途

    • 包含 DLL 导出的符号信息

    • 在创建 DLL 时,链接器会使用 EXP 文件中的信息

  • 特点

    • 通常只在复杂链接场景下才会看到

    • 大多数简单项目不会显式生成 EXP 文件

相关推荐
_wyt0016 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
玖玥拾10 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
один but you11 小时前
constexpr函数
c++
凡人叶枫12 小时前
Effective C++ 条款41:了解隐式接口和编译期多态
java·开发语言·c++·effective c++
凡人叶枫12 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
小胖xiaopangss12 小时前
BRpc使用
c++·rpc
-森屿安年-12 小时前
63. 不同路径 II
c++·算法·动态规划
chase_my_dream12 小时前
Cartographer详细讲解
c++·人工智能·自动驾驶
森G12 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
碧海蓝天202213 小时前
C++法则24:在标准 C++ 中,没有任何可移植的方式判断指针 T* pt 指向的内存位置是否已经 构造了对象,程序员必须手动跟踪哪些元素已构造。
java·开发语言·c++