轉 gcc的基本用法

2021-04-16 22:16:15 字數 2138 閱讀 3362

gcc基本的使用方法及常用指令

前言編譯器在編譯過程中,先將程式碼編譯成 object 檔,然後再和程式庫聯結,成為可執行檔。故乙個編譯器須提供的引數主要有幾類:

1.指定編譯器編出的object 檔或是可執行檔檔名。

2.在編譯過程做最佳化,可提公升程式的執行速度。

3.設定搜尋程式庫的標頭檔 (header file) 及程式庫檔的目錄及指定程式庫檔檔名。

提供進一步的資訊以便使用者找尋程式中的錯誤。

[@more@]

以下便以這四個大類分別介紹。

注意:下面在不同類別中所介紹的引數,幾乎都可以混合著使用。

1.設定編譯出的 object 檔檔名或是可執行檔檔名:

引數: -o out_put_filename

說明: 指定編譯出的檔名為 out_put_filename。

範例: 本例將程式碼 'test.c' 編譯成可執行檔,並設定檔名為 'test'。

gcc test.c -o test

2.在編譯過程做最佳化

引數: -o

說明: 在編譯過程做最佳化,以提公升增快程式執行速度。

範例: 本例將程式碼 'test.c' 編譯成可執行檔 'test',並在編譯過程做最佳化'。 

gcc -o test.c -o test

3.設定搜尋標頭檔目錄、程式庫檔的目錄及指定程式庫檔。

3.1設定搜尋標頭檔目錄

引數: -idir_name

說明: 將目錄 'dir_name' 設定為搜尋標頭檔目錄之一。

3.2設定搜尋程式庫目錄。

引數: -ldir_name

說明: 將目錄 'dir_name' 設定為搜尋程式庫目錄之一。

3.3設定程式庫檔案。

引數: -lname

說明: 聯結程式庫 libname.a 。

範例一:本例中假設你的程式檔名為test.c,數學函式如 sin等,所要聯結的程式庫為 libm.a。

gcc -i/usr/x11r6/include -l/usr/x11r6/lib -lx11 test.c -o test

範例二:本例中假設你的程式檔名為 test.c,使用到 x window 函式,所需的 include 檔放在 /usr/x11r6/include 中,所須聯結的程式庫放在 /usr/x11r6/lib,所要聯結的程式庫為 libx11.a。

gcc -i/usr/x11r6/include -l/usr/x11r6/lib -lx11 test.c -o test 

提供進一步的資訊以便使用者找尋程式中的錯誤。

引數: -wall

說明: 輸出較多的警告訊息,以便找出程式的錯誤。

範例: 編譯 test.c 時輸出較多的警告訊息。

gcc -wall test.c

引數: -g

說明: 在編譯出可執行檔時,附加執行時除錯資訊,以供 gdb 讀取 (若要使用 absoft 的除錯程式,則須將引數改為 -gdwarf )。

範例: 將 'test.c' 編譯成可執行檔 'test',並附加除錯資訊。

gcc -g test.c -o test

高階引數

1. 僅編譯成 object 檔。

引數: -c

說明: 僅編譯成 object 檔而不進行程式庫聯結。

範例: 將 test.c 編譯成 object 檔 test.o。

gcc -c test.c -o test.o

2. 聯結數個 object 成可執行檔。

範例: 將 'test1.o'、'test2.o' 和程式庫聯結後成為可執行檔 test。

gcc test1.o test2.o -o test

3. 觀察巨集展開情形:

引數: -e

說明:展開程式中的巨集以便了解巨集是否依照預期方式展開。

範例:將 test1.c 中的巨集展開後儲存到 test1.c.ext 。

gcc -e test1.c > test1.c.ext

4. 產生組合語言程式碼:

引數: -s

範例:編譯 test.c 產生對應的組合語言程式碼檔 test.s。

gcc -s test.c -o test.s 

GCC基本用法

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

gcc基本用法

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

gcc基本用法

gcc最基本的用法是 gcc options filenames c,只編譯,不連線成為可執行檔案,編譯器只是由輸入的.c等原始檔生成.o為字尾的目標檔案,通常用於編譯不包含主程式的子程式檔案。o output filename,確定輸出的檔案的名稱 g,產生符號除錯工具 gnu的gdb 所需要的符...