gcc demo.c -o demo 實際上依次執行:預處理 → 編譯 → 匯編 → 鏈接。
gcc -E demo.c -o demo.i
#include、#define、#ifdef 等指令。gcc -S demo.i -o demo.s
gcc -c demo.s -o demo.o
gcc demo.o -o demo
gcc demo1.c demo2.c -o demo
等價於分別編譯生成 .o 再鏈接。大型項目建議使用 Makefile 或 CMake 管理。
| 選項 | 作用 |
|---|---|
| -Wall | 開啟大多數警告 |
| -O2 | 優化等級 2(推薦發布) |
| -g | 生成調試信息 |
| -std=c11 | 指定 C 標準 |
| -I/path | 添加頭文件搜索路徑 |
| -L/path -lname | 添加庫搜索路徑並鏈接 libname.a/.so |
gcc -save-temps demo.c -o demo
會保留 demo.i、demo.s、demo.o,方便學習與調試。
理解 GCC 四階段流程有助於診斷編譯錯誤、優化構建速度、排查鏈接問題。掌握中間產物查看技巧是 C 開發者的基本功。