- gcc:一個工具集合,包含預處理器,編輯器,彙編器,鏈接器等組件
說明:當不使用任何選項時,gcc將會生成一個名爲a.out的可執行文件
- gcc選項
- gcc -E 預處理 .i
- gcc -S 編譯成彙編代碼 .s
- gcc -c 彙編成目標代碼 .o
- gcc -o 鏈接成可執行代碼 .out/.exe
- gcc -E 只進行預處理
- gcc -E test.c 只進行預處理
- gcc -E test.c -o test.i 將test.c預處理後的代碼放在test.i中
- gcc -S 只進行編譯,不進行彙編,生成彙編代碼文件.s
- gcc -S test.c //生成test1.s
- gcc -S test.i
- gcc -S test.i -o test.s //-o選項用來指定輸出文件名,將test.i編譯之後的彙編代碼放在test.s中
- gcc -c 可以將每一個源文件編譯成目標文件(.o文件),但不進行鏈接
- gcc -c test.c //生成test.c
- gcc -c test.s
- gcc -o 格式:gcc -o file file.c 將文件file.c編譯成可執行文件file
- gcc -o test test.c
- gcc -o test test.o
- gcc -g 在目標代碼中加入供調試程序gdb使用的附加信息
- gcc -Wall 顯示警告信息
- gcc -Wall -o test test.c
- gcc -g -o test test.c
- 庫(Library)
- 靜態庫(.a)文件 在程序的鏈接階段被複制到了程序中(gcc -o test test.c libtest.a)
- 動態庫/共享庫(.so)文件 程序在運行時由系統動態加載到內存中供程序調用(gcc -o test test.c libtest.so)
- gcc優化選項
- gcc -O0:缺省情況,不優化
- gcc -O1:一級優化
- gcc -O2:
- gcc -O3:
- 文件名及其文件類型:
文件名後綴 |
文件類型 |
.h |
頭文件 |
.c |
C源文件 |
.i |
預處理後的c源文件 |
.s |
彙編程序文件 |
.o |
目標文件 |
.a |
靜態鏈接庫 |
.so |
動態鏈接庫 |