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

來源:互聯網
上載者:User

 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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.