静态库与动态库
在 C/C++ 开发中,静态库(Static Library)和动态库(Dynamic Library,又称共享库 Shared Library)是两种代码复用和模块化开发的两种重要方式,核心区别在于链接时机和内存 / 磁盘使用方式。
一、核心定义与本质区别

二、内存与磁盘占用
- 静态库:每个使用静态库的可执行文件都会包含库的完整代码,导致:
- 磁盘上:多个程序占用重复空间(如 10 个程序使用 1MB 静态库,总占用 10MB)。
- 内存中:多个程序运行时,各自加载一份库代码(重复占用内存)。
- 动态库:库代码仅在磁盘上存储一份,内存中也仅加载一次,供所有程序共享:
- 磁盘上:10 个程序使用 1MB 动态库,总占用仅 1MB。
- 内存中:所有程序共享同一份库代码(操作系统通过内存映射实现)。
三、程序启动速度
- 静态库:
- 程序启动快,因为所有代码已包含在可执行文件中,无需运行时加载外部库。
- 动态库:
- 程序启动稍慢,因为需要在运行时加载动态库并解析引用(但现代操作系统会优化加载速度,差距通常不明显)。
四、总结对比表


浙公网安备 33010602011771号