1. 程式人生 > >gcc 編譯控制選項

gcc 編譯控制選項

ansi 不包含 描述 尺寸 根據 警告 如果 編譯 語法

gcc 編譯控制選項
前面已經講過, gcc 的基本用法是:
$ gcc [選項] [文件名]
gcc 有很多編譯控制選項,使得 gcc 可以根據不同的參數進行不同的編譯處理,可供 gcc
調用的參數大約有 100 來個,但實際使用中並不會用到這麽的多選項和參數。這裏只介紹一
些最基本和常用的控制選項以及參數,如表 10.3 所列。
10.3 gcc 常用選項和參數

名稱 功能描述
-c 只編譯不鏈接。編譯器只是將輸入的.c 等源代碼文件生成.o 為後綴的目標文件,通
常用於編譯不包含主程序的子程序文件
-S 只對文件進行編譯,不匯編和鏈接
-E 只對文件進行預處理,不編譯匯編和鏈接
-o output_filename 確定輸出文件的名稱為 output_filename,這個名稱不能和源文件同名。如果不給出
這個選項, gcc 就給出預設的可執行文件 a.out
-g 產生符號調試工具(GNU gdb)所必要的符號信息,要想對源代碼進行調試,就必
須加入這個選項。 g 也分等級,默認是-g2-g1 是最基本的, -g3 包含宏信息
-DFOO=BAR 在命令行定義預處理宏 FOO,值為 BAR

-O 對程序進行優化編譯、鏈接。采用這個選項,整個源代碼會在編譯、鏈接過程中進
行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、鏈接的速

度就相應地要慢一些
-ON 指定代碼的優化等級為 N,可取值為 0123O0 沒有優化, O3 優化級別最高
-Os 使用了-O2 的優化部分選項,同時對代碼尺寸進行優化
-Idirname dirname 目錄加入到程序頭文件搜索目錄列表中,是在預編譯過程中使用的參數
-L dirname dirname 目錄加入到庫文件的搜索目錄列表中
-l FOO 鏈接名為 libFOO 的函數庫
-static 鏈接靜態庫
-ansi 支持 ANSI/ISO C 的標準語法,取消 GNU 語法中與該標準相沖突的部分
-w 關閉所有警告,不建議使用
-W 開啟所有 gcc 能提供的警告
-werror 將所有警告轉換為錯誤,開啟該選項,遇到警告都會中止編譯
-v 顯示 gcc 執行時執行的詳細過程, 以及 gcc 和相關程序的版本號



gcc 編譯控制選項