gcc工作流程

2022-09-10 20:12:11 字數 975 閱讀 3598

1.gcc工作流程

1預處理--e

-巨集替換

-標頭檔案展開

-注釋去掉

-***.c->***.i

-c檔案

2編譯--s

-***.i->***.s

-彙編檔案

3彙編--c

-***.s->***.o

-二進位制檔案

4鏈結-***.o->***(可執行)

在使用gcc編譯器的時候,我們必須給出一系列必要的呼叫引數和檔名稱。gcc編譯器的呼叫引數大約有100多個,其中多數引數我們可能根本就用不到,這裡只介紹其中最基本、最常用的引數。

其中options就是編譯器所需要的引數,filenames給出相關的檔名稱。

-c,只編譯,不連線成為可執行檔案,編譯器只是由輸入的.c等源**檔案生成.o為字尾的目標檔案,通常用於編譯不包含主程式的子程式檔案。

-o output_filename,確定輸出檔案的名稱為output_filename,同時這個名稱不能和原始檔同名。如果不給出這個選項,gcc就給出缺省的可執行檔案a.out。

-g,產生符號除錯工具(gnu的gdb)所必要的符號資訊,要想對源**進行除錯,我們就必須加入這個選項。

-o,對程式進行優化編譯、連線,採用這個選項,整個源**會在編譯、連線過程中進行優化處理,這樣產生的可執行檔案的執行效率可以提高,但是,編譯、連線的速度就相應地要慢一些。

-o2,比-o更好的優化編譯、連線,當然整個編譯、連線過程會更慢。

-idirname,將dirname所指出的目錄加入到程式頭檔案目錄列表中,是在預編譯過程中使用的引數。c程式中的標頭檔案包含兩種情況∶

a)#include

b)#include 「myinc.h」

其中,a類使用尖括號(< >),b類使用雙引號(「 」)。對於a類,預處理程式cpp在系統預設包含檔案目錄(如/usr/include)中搜尋相應的檔案,而b類,預處理程式在目標檔案的資料夾內搜尋相應檔案。 '

gcc工作流程

在 c 程式的編譯過程中,依次要進行預處理 編譯 彙編 鏈結四個階段。這裡通過編譯 c 檔案 test.c 來展示 gcc 的工作流程。例如 l test.c include int main printf hello world n return 0 1.預處理階段 由於在 test.c 中使用了...

Struts工作流程

文章分類 招聘求職 乙個使用者的請求是通actionservlet來處理和 的。那麼,actionservlet如何決定把使用者請求 給哪個action物件呢?這就需要一些描述使用者請求路徑和action衍射關係的配置資訊了。在struts中,這些配置對映資訊都儲存在特定的xml檔案struts c...

zf工作流程

zend controller是使用mvc模式來構建乙個站點的基礎。zend controller體系是乙個輕量的,模組化和可擴充套件的體系。它只提供最核心的必要的部分,允許開發者有很大的自由來靈活地構建自己的站點。使用zend controller的站點,其檔案組織和 結構會比較相似。zend c...