GCC 用法簡介

2021-07-26 12:52:35 字數 2473 閱讀 4258

gcc介紹目錄

一、gcc簡介

1、gcc的特點

gcc(gnu c compiler)是gnu推出的功能強大、效能優越的多平台編譯器,是gnu的代表作之一。gcc可以在多種硬體平台上編譯出可執行程式,其執行效率與一般的編譯器相比平均效率要高20%~30%。

2、gcc基本用法

gcc最基本的用法是∶

gcc [options] filenames

options:編譯器所需要的編譯選項

filenames: 要編譯的檔名

新建乙個hello.c檔案,檔案內容如下

/*hello.c*/

#include

void main()

儲存後執行gcc hello.c,會生成乙個a.out 目錄,執行a.out檔案

./a.out,會列印出hello world

二、gcc深入使用

1,gcc編譯流程

gcc編譯器能將c/c++語言源程式、匯程式設計序形成

可執行檔案。整個形成過程可以被細分為四個階段:

經過預處理,編譯,彙編,鏈結四個階段

a,預處理

gcc -e hello.c -o(輸出) hello.i

輸出hello.i

開啟hello.i,把預處理stdio.h所用到的標頭檔案補全了。

b,編譯成彙編檔案

gcc - s hello.i -o hello.s

vim hello.s

可以看到hello.s是彙編檔案

c,變成二進位制檔案

gcc -c hello.s -o hello.o

d,鏈結

gcc hello.o -o hello

最後得到hello這個可以執行的應用程式,可以執行./hello

列印出hello world

總結

gcc通過字尾來區別輸入檔案的類別,常見型別有

v .c為字尾的檔案: c語言源**檔案

v .a為字尾的檔案: 是由目標檔案構成的庫檔案

v .c,.cc或.cxx 為字尾的檔案: 是c++源**檔案

v .h為字尾的檔案: 標頭檔案

v .o為字尾的檔案: 是編譯後的目標檔案

v .s為字尾的檔案: 是組合語言源**檔案

2,gcc編譯選項

掌握gcc的使用方法,最重要的是掌握gcc的編譯選項,gcc編譯器的編譯選項大約有100多個,其中多數我們根本就用不到,這裡只介紹其中最基本、最常用的引數。-o output_filename:確定可執行檔案的名稱為output_filename。如果不給出這個選項,gcc就給出缺省的可執行檔案a.out。

-o用法:

如gcc hello.c 直接生成預設的a.out

gcc hello.c -o ***

那麼就會生成***的可執行檔案,不再生成a.out預設可執行檔案

#include 

int main(void)

printf(result is %lf\\n, result);

return

0;}

從**中看到,temp被賦值但是沒有用到,所以可以被優化掉,節省了時間和提高效率。我們可以從**執行的時間來看

如把上面的程式儲存在hello1.c裡面

gcc hello1.c -o hello

time ./hello

可以看到列印的real時間為2.5s

如果用-o優化

gcc -o hello1.c -o hello

time ./hello

可以看到列印real的時間為0.6s

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

-c:不鏈結,編譯器只是由輸入的.c等源**檔案編譯生成的.o為字尾的中間檔案

即生成hello.o 檔案不生成hello的執行檔案

gcc -c hello.c

-g:產生除錯工具(gnu的gdb)所需要的符號資訊,要想對編譯出的程式進行除錯,就必須加入這個選項。

gcc -g hello.c -o hello 可以用ll檢視hello比不加-g的hello的可執行程式要大

-i dirname: 將dirname所指出的目錄作為編譯器尋找標頭檔案的標準路徑。

c程式中的標頭檔案包含兩種情況∶

#include

gcc 引數 gcc編譯工具簡介

編譯的過程是乙個語言轉換的過程,由人能看懂的程式語言轉換為機器能看懂的二進位制語言。yaos的開發過程中,我們選擇gcc作為這個轉換器。我使用的系統是macos ak 2 yaos akilis uname adarwin ak 2.local 19.3.0 darwin kernel versio...

GCC基本用法

初學時最好從命令列入手,這樣可以熟悉從編寫程式 編譯 除錯和執行的整個過程。編寫程式可以用vi或其它編輯器編寫。編譯則使用gcc命令。要往下學習首先就得熟悉gcc命令的用法。gcc命令提供了非常多的命令選項,但並不是所有都要熟悉,初學時掌握幾個常用的就可以了,到後面再慢慢學習其它選項,免得因選項太多...

gcc基本用法

gcc命令提供了非常多的命令選項,但並不是所有都要熟悉,初學時掌握幾個常用的就可以了,到後面再慢慢學習其它選項,免得因選項太多而打擊了學習的信心。一.常用編譯命令選項 假設源程式檔名為test.c。1.無選項編譯鏈結 用法 gcc test.c 2.選項 o 用法 gcc test.c o test...