細說cc 編譯命令

來源:互聯網
上載者:User
多數UNIX平台都通過CC調用它們的C編譯器.除標準和CC以外,LINUX和FREEBSD還支援gcc. 基本的編譯命令有以下幾種:    1.  -c     編譯產生對象檔案(*.obj)而不連結成可執行檔,當編譯幾個獨立的模組,而待以後由連結程式把它們連結在一起時,就可以使用這個選項,如:              $cc -c hello.c ===> hello.o              $cc hello.o     2.  -o     允許使用者指定輸出檔案名,如             $cc hello.c -o hello.o             or             $cc hello.c -o hello     3.  -g    指明編譯器在編譯的輸出中應產生調試資訊.這個調試資訊使原始碼和變數名引用在偵錯工具中或者當程式異常退出後在分析core檔案時可被使用.    4.   -D   允許從編譯器命令列定義宏符號         一共有兩種情況:一種是用-DMACRO,相當於在程式中使用#define MACRO,另一種是用-DMACRO=A,相當於程式中的#define MACRO A.如對下面這代碼:           #ifdefine DEBUG                     printf("debug message/n");          #endif        編譯時間可加上-DDEBUG參數,執行程式則列印出編譯資訊    5.   -I   可指定尋找include檔案的其他位置.例如,如果有些include檔案位於比較特殊的地方,比如/usr/local/include,就可以增加此選項如下:         $cc -c -I/usr/local/include -I/opt/include hello.c 此時目錄搜尋會按給出的次序進行.   6. -E   這個選項是相對標準的,它允許修改命令列以使編譯器把預先處理的C檔案發到標準輸出,而不實際編譯代碼.在查看C預先處理偽指令和C宏時,這是很有用的.可能的編譯輸出可重新定向到一個檔案,然後用編輯程式來分析:       $cc -c -E hello.c >cpp.out       此命令使include檔案和程式被預先處理並重新導向到檔案cpp.out.以後可以用編輯程式或者分頁命令分析這個檔案,並確定最終的C語言代碼看起來如何.   7. -o   最佳化選項,     這個選項不是標準的           -O和 -O1指定1級最佳化          -O2 指定2級最佳化         -O3 指定3級最佳化         -O0指定不最佳化       $cc -c O3 -O0 hello.c  當出現多個最佳化時,以最後一個為準!!    8. -Wall  以最進階別使用GNU編譯器,專門用於顯示警告用!!       $gcc -Wall hello.c    9.   -L指定串連庫的搜尋目錄,-l(小寫L)指定串連庫的名字       $gcc main.o -L/usr/lib -lqt -o hello      上面的命令把目標檔案main.o與庫qt相串連,串連時會到/usr/lib尋找這個庫檔案.也就是說-L與-l一般要成對出現.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.