1 1 GCC編譯過程

2021-09-29 09:54:03 字數 1006 閱讀 1461

作用:展開巨集,把頭檔案內容解發布來生成*.i檔案;

a、將#include的內容解發布來

b、處理條件預處理命令,比如#if #ifdef #elif #else #endif等

c、刪除所有的注釋 /* ... */ //

d、展開巨集定義

gcc 原始檔(***.c) -e -o ***.i

gcc vol.c -e -o vol.i

gcc: 編譯器

vol.c: 原始檔(***.c)

-e,-o: 不可更改

***.i: 預編譯檔案

作用:檢查語法錯誤,翻譯成組合語言  (面試或者筆試會考)

gcc vol.i -s -o vol.s

gcc ***.i -s -o ***.s

gcc: 編譯器

***.i: 預編譯檔案

-s,-o: 不可更改

***.s: 彙編檔案

作用:將組合語言生成機器指令

gcc vol.s -c -o vol.o

gcc ***.s -c -o ***.o

gcc: 編譯器

***.s: 彙編檔案

-c,-o: 不可更改

***.o: 機器指令

作用:鏈結器將程式執行所需要的一大堆目標檔案、所依賴的其它庫檔案鏈結生成可執行檔案

gcc vol.o -o vol

gcc ***.o -o ***

gcc: 編譯器

***.o: 機器指令

-o: 不可更改

***: 可執行檔案

執行:

./*** //執行***

一句搞定:

gcc vol.c -o vol.o

gcc -o sizeof.o sizeof.c

11 GCC的基本使用

一.常用編譯命令選項 假設源程式檔名為test.c 1.無選項編譯鏈結 用法 gcc test.c 作用 將test.c 預處理 彙編 編譯並鏈結形成可執行檔案。這裡未指定輸出檔案,預設輸出為 a.out 2.選項 o 用法 gcc test.c o test 作用 將test.c 預處理 彙編 編...

gcc編譯過程

本文對gcc編譯器如何工作做乙個概要描述.更為詳細的資訊請參考編譯器手冊。當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。...

gcc編譯過程

當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。gcc將c檔案編譯成彙編檔案。3 彙編。as將彙編檔案編譯成機器碼。4 連...