C/C++ 專案建置產物對照表
| 階段 | 檔案副檔名 | 內容說明 | 備註 |
| 原始碼 | .c / .cpp / .cc | 人類可讀的程式碼 | C 標準副檔名為 .c |
| 前置處理後 | .i / .ii | 展開巨集、包含標頭檔、移除註解 | gcc -E 產生 |
| 組合語言 | .s / .asm | 編譯器產生的組語 | gcc -S 產生 |
| 目標檔 | .o (Linux) / .obj (Windows) | 機器碼、符號表、重定位資訊 | gcc -c 產生 |
| 靜態庫 | .a (Linux) / .lib (Windows) | 目標檔封存 | ar / lib.exe |
| 動態庫 | .so (Linux) / .dll (Windows) / .dylib (macOS) | 執行期連結共享程式碼 | 位置無關碼 (PIC) |
| 執行檔 | a.out (Linux預設) / .exe (Windows) / 無副檔名 | 可直接載入記憶體執行 | 連結器 ld / link.exe 產生 |
Windows 下常見誤區
- 以為 C 只有
.exe —— 其實中間產物 .obj、.lib、.dll 同樣重要。
- Java 有
.jar、.apk;C/C++ 無統一封裝格式,視平台而定。
建置流程一鍵指令
# GCC (Linux/macOS/MinGW)
gcc main.c -o myapp # 直接產生執行檔
gcc -c main.c -o main.o # 僅編譯產生目標檔
gcc main.o -o myapp # 連結產生執行檔
# MSVC (Visual Studio Developer Command Prompt)
cl main.c # 產生 main.obj + main.exe
link main.obj /out:myapp.exe # 僅連結