通過GCC編譯器編譯c語言

2021-07-29 11:35:43 字數 740 閱讀 1605

可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。

下面將通過對乙個程式的編譯來演示整個過程。

#include 

int main()

1:預處理:編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數-e來參看。作用:將hello.c預處理輸出hello.i

2:編譯:這個階段編譯器主要做詞法分析、語法分析、語義分析等,在檢查無錯誤後後,把**翻譯成組合語言。可用gcc的引數-s來參看。

編譯器(ccl)將文字檔案hello.i 翻譯成文字檔案hello.s, 它包含乙個組合語言程式。組合語言程式中的每條語句都以一種標準的文字格式描述了一條低階機器語言指令。作用:將預處理輸出檔案hello.i彙編成hello.s檔案

3:彙編:把編譯階段生成的.s 檔案轉換為二進位制目標**。可用gcc的引數-c來參看。彙編器(as)將hello.s翻譯成機器語言指令,把這些指令打包成可重定位目標程式的格式, 並將結果儲存在目標檔案hello.o中。hello.o檔案是乙個二進位制檔案,它的位元組編碼是機器語言。作用:作用:將彙編輸出檔案hello.s編譯輸出hello.o檔案

一步操作的話是: (-o必須在hello之前 )

$gcc hello.c -o hello

$./hello

或者:(會預設生成a.out檔案)
$gcc hello.c

$./a.out

C語言基礎 GCC編譯器

預處理 pre processing 編譯 compiling 彙編 assembling 鏈結 linking 編譯器通過程式的副檔名來分辯編寫源程式所用的語言。由於不同的程式所需要執行編譯的步驟是不同的,因此gcc根據不同的字尾名對它們進行相應處理。後 綴 名 所對應的語言 編 譯 流 程 cc...

C 語言編譯器 gcc 命令詳解

linux 系統中最重要的軟體開發工具是 gcc,在 linux 系統中,c89 cc 和 gcc 這些命令基本上都指向系統的c語言編譯器,通常是gnu c編譯器,或都簡稱 gcc。在 unix 系統中,c 語言編譯器稱為 cc。實際上,gcc 能夠編譯三種語言 c c 和 object c c 語...

gcc編譯器簡介

在linux中選擇gcc編譯器的原因是gcc執行效率高。gcc基本用法 gcc options filename 其中options為編譯選項。例子 執行指令 gcc hello.c 則對hello.c進行編譯,如果程式沒有語法錯誤,則產生可執行檔案a.out gcc預設檔名 執行可執行檔案指令 a...