一、GCC編譯器概念
GCC編譯器是GNU編譯器的套件,它是Linux作業系統中最常用的編譯器之一,是用於程式設計開發的編譯器,並支援多種程式語言,例如支援c/c++語言,還有java、go語言等等。
二、GCC支援的檔案型別
GCC支援的常見檔案型別有以下:
副檔名
說明
。c
C源程式
。C/。cc
C++源程式
。a
庫檔案
。h
標頭檔案
。i
經過預處理的C程式
。ii
經過預處理的C++程式
。o
編譯後的目標程式
三、GCC編譯過程
(一)預編譯
首先GCC編譯器透過預編譯,讀取源程式,對標頭檔案、預編譯語句和一些特殊符號進行分析和處理,可以透過在gcc命令後跟引數-E,即可完成對程式碼的預編譯,如下預編譯一個名稱為hello。c的C源程式:
gcc-Ehello。c//預編譯
hello。c檔案內容如下:
#include
intmain{printf(“HelloLinux!\n”);return0;}
執行命令後:
[yyx@localhost~]$vihello。c[yyx@localhost~]$gcc-Ehello。c
將預編譯的結果儲存在hello。i檔案中,可以在後跟引數-o,確定輸出檔案的名稱,執行以下命令:
gcc-Ehello。c-ohello。i
(二)編譯
編譯的作用是檢查程式碼的語法和將無誤的預編譯後的檔案轉換為組合語言,並自動一個生成副檔名為。s的檔案,即可完成對程式碼的編譯,如下編譯一個名稱為hello。c的C源程式,後跟引數-S,表示進行編譯但不彙編,生成彙編程式碼:
gcc-Shello。c
在Linux終端輸入命令:
(三)彙編
彙編是將彙編程式碼轉為目的碼,其引數是-c,它會自動生成一個副檔名為。o的目標程式,即只編譯彙編,而不連線生成可執行檔案,如下:
gcc-chello。c
(四)連線
連線的功能是連線目的碼,並生成可執行檔案,也是透過gcc命令,透過對hello。o或hello。c檔案都可以進行連線,後跟引數-o,從而確定可執行檔案的名稱,如下:
gcchello。c-ohello
執行下列命令:
[yyx@localhost~]$gcchello。c-ohello[yyx@localhost~]$。/hello
在Linux終端輸入命令,得到程式的執行結果:
例子
例如,在Ubuntu中編寫一個ch。c檔案,其目的是從鍵盤輸入一個字元,如果是大寫字元,則輸出它對應的小寫字元;如果是小寫字元,則輸出它對應的大寫字元。
首先,透過vi編輯器,執行vimch。c:
linux@ubuntu:/mnt/hgfs/VMShare$vimch。c
在終端輸入命令:
編寫程式碼:
輸出可執行檔案,並執行: