1. 程式人生 > >gcc命令常用選項及工作流程

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。