| 副檔名 | 全名 | 內容 | 產生階段 | Windows 對應 |
|---|---|---|---|---|
.o | Object file (目標檔) | 編譯器產生的機器碼,含符號表、重定位資訊 | 編譯階段 (-c) | .obj |
.a | Archive (靜態庫) | 多個 .o 打包的歸檔檔,含索引表 | 連結前 (ar) | .lib |
# 1. 編譯原始檔為目標檔
gcc -c foo.c -o foo.o
gcc -c bar.c -o bar.o
# 2. 打包為靜態庫
ar rcs libmylib.a foo.o bar.o
# 3. 連結使用
gcc main.c -L. -lmylib -o app
.o 可單獨連結,.a 方便管理大量模組。.o 區段,未引用部分不納入最終執行檔。.lib 可能同時包含靜態庫與 DLL 匯入庫,需注意區分。