靜態庫與動態庫
在 C/C++ 開發中,靜態庫(Static Library)和動態庫(Dynamic Library,又稱共享庫 Shared Library)是兩種代碼復用和模塊化開發的兩種重要方式,核心區別在于鏈接時機和內存 / 磁盤使用方式。
一、核心定義與本質區別

二、內存與磁盤占用
- 靜態庫:每個使用靜態庫的可執行文件都會包含庫的完整代碼,導致:
- 磁盤上:多個程序占用重復空間(如 10 個程序使用 1MB 靜態庫,總占用 10MB)。
- 內存中:多個程序運行時,各自加載一份庫代碼(重復占用內存)。
- 動態庫:庫代碼僅在磁盤上存儲一份,內存中也僅加載一次,供所有程序共享:
- 磁盤上:10 個程序使用 1MB 動態庫,總占用僅 1MB。
- 內存中:所有程序共享同一份庫代碼(操作系統通過內存映射實現)。
三、程序啟動速度
- 靜態庫:
- 程序啟動快,因為所有代碼已包含在可執行文件中,無需運行時加載外部庫。
- 動態庫:
- 程序啟動稍慢,因為需要在運行時加載動態庫并解析引用(但現代操作系統會優化加載速度,差距通常不明顯)。
四、總結對比表


浙公網安備 33010602011771號