C++:动态库相关文件

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

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

  • 特点

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

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

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

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

LIB 文件

分为两种类型:

导入库 (Import Library)

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

  • 用途

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

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

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

静态库 (Static Library)

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

PDB (Program Database) 文件

  • 作用:存储调试信息

  • 包含内容

    • 变量名和函数名

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

    • 类型信息

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

  • 特点

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

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

EXP 文件

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

  • 用途

    • 包含 DLL 导出的符号信息

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

  • 特点

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

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

相关推荐
hhcgchpspk1 天前
easyx按键游戏
c++·stm32·单片机·游戏·easyx
郝学胜-神的一滴1 天前
Qt 高级开发 011: 跨线程信号槽实战
开发语言·c++·qt·程序人生·开源软件·用户界面
学困昇1 天前
Linux 动静态库制作与原理:从 .a、.so 到 ELF 加载一次讲透
linux·运维·服务器·c语言·开发语言·c++·人工智能
basketball6161 天前
C++面试考点 头文件与实现文件形式
开发语言·c++
历程里程碑1 天前
56 . 高效ET非阻塞IO服务器设计指南
java·运维·服务器·开发语言·数据结构·c++·排序算法
计算机安禾1 天前
【c++面向对象编程】第44篇:typename与class的区别,依赖类型名与template消除歧义
java·jvm·c++
Hua-Jay1 天前
OpenCV联合C++/Qt 学习笔记(二十五)----监督学习聚类及K均值聚类
c++·笔记·opencv·学习·计算机视觉·聚类
玖釉-1 天前
C++ 中的矩阵介绍:以二维矩阵查找为例
c++·windows·算法·矩阵
j_xxx404_1 天前
Linux线程:从内存分页机制(Page Table/TLB/Page Fault)彻底读懂 Linux 线程本质
linux·运维·服务器·开发语言·c++·人工智能·ai
2301_789015621 天前
C++_string增删查改模拟实现
java·开发语言·c++