C++:动态库相关文件

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

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

  • 特点

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

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

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

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

LIB 文件

分为两种类型:

导入库 (Import Library)

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

  • 用途

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

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

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

静态库 (Static Library)

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

PDB (Program Database) 文件

  • 作用:存储调试信息

  • 包含内容

    • 变量名和函数名

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

    • 类型信息

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

  • 特点

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

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

EXP 文件

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

  • 用途

    • 包含 DLL 导出的符号信息

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

  • 特点

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

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

相关推荐
何妨重温wdys22 分钟前
矩阵链相乘的最少乘法次数(动态规划解法)
c++·算法·矩阵·动态规划
重启的码农23 分钟前
ggml 介绍 (6) 后端 (ggml_backend)
c++·人工智能·神经网络
重启的码农24 分钟前
ggml介绍 (7)后端缓冲区 (ggml_backend_buffer)
c++·人工智能·神经网络
雨落倾城夏未凉43 分钟前
5.通过拷贝构造函数复制一个对象,假如对象的成员中有个指针类型的变量,如何避免拷贝出来的副本中的该成员之下行同一块内存(等价于默认拷贝构造函数有没有缺点)
c++·后端
雨落倾城夏未凉1 小时前
4.深拷贝VS浅拷贝
c++·后端
tanyongxi661 小时前
C++ 特殊类设计与单例模式解析
java·开发语言·数据结构·c++·算法·单例模式
fqbqrr2 小时前
2508C++,支持rdma通信的高性能rpc库
c++·rpc
liulilittle2 小时前
BFS寻路算法解析与实现
开发语言·c++·算法·宽度优先·寻路算法·寻路
喜欢吃燃面3 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
草莓熊Lotso3 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他