gcc命令常用選項及工作流程
蘇嵌 專案實戰
學習日誌 姓名: 日期:
今日學習任務 |
Gcc命令常用選項及工作流程 |
今日任務完成情況 |
基本完成 |
今日開發中出現的問題彙總 |
無 |
今日未解決問題 |
無 |
今日開發收穫 |
無 |
其他 |
無 |
用法:gcc [選項] [檔名] [選項] [檔名]
選項:用於控制編譯的整個流程。
常用選項:
-c:對原始檔進行編譯或彙編。
-E:對原始檔進行預處理。
-S:對原始檔進行編譯。
-o file :輸出目標檔案 file 。
-v:顯示編譯階段的命令。
語言選項:用於支援各種版本的 C 語言程式。
除錯選項:用於控制除錯資訊。
常用選項: -g:產生除錯資訊。
優化選項:用於對目標檔案進行優化。
常用選項:
-O1:對目標檔案的效能進行優化。
-O2:在-O1 的基礎上進一步優化,提高目標檔案的執行效能。
-O3:在-O2 的基礎上進一步優化,支援函式整合優化。
-O0:不進行優化。
聯結器選項:用於控制連結過程。
常用選項:
-static:使用靜態連結。
-l library :連結 librar y 函式庫檔案。
-L dir :指定聯結器的搜尋目錄 dir 。
-shared:生成共享檔案。
目錄選項:用於指定編譯器的檔案搜尋目錄。
常用選項:
-I dir :指定標頭檔案的搜尋目錄 dir 。
-Ldir:指定搜尋目錄 dir
這裡通過編 譯 C 檔案 test.c 來展示 GCC 的工作流程。
例如: test.c
#include <stdio.h>
int main()
{
printf(“Hello world!\n”);
return 0;
}
用一個圖看一些上面gcc命令選項的關係
如上圖:
輸入命令gcc -E test.c -o test.i得到.i檔案,
輸入命令“gcc -S test.i -o test.s”,得到.s檔案,
輸入命令“gcc -c test.s -o test.o”得到.o檔案,
最後輸入命令“gcc test.o -o test”,得到可執行檔案test。