gcc 編譯控制選項

2021-09-24 09:39:42 字數 1119 閱讀 1517

gcc 的基本用法是:

gcc [選項]  [檔案]

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,可取值為 0、1、2、3;o0 沒有優化,o3 優化級別最高 

-os 

使用了-o2 的優化部分選項,同時對**尺寸進行優化 

-idirname 

將 dirname 目錄加入到程式標頭檔案搜尋目錄列表中,是在預編譯過程中使用的引數 

-l[dirname]

將 dirname 目錄加入到庫檔案的搜尋目錄列表中 。

比如某個c檔案包含了乙個自定庫檔案,編譯時找不到這個自定義的檔案,那麼就需要用這個引數指定檔案的路徑。

比如包含當前路徑 "-l."

-lfoo 

鏈結名為 libfoo.so 的函式庫 

-static 

鏈結靜態庫 

-ansi 

支援 ansi/iso c 的標準語法,取消 gnu 的語法中與該標準相衝突的部分 

-w 關閉所有警告,不建議使用 

-w 開啟所有 gcc 能提供的警告 

-werror 

將所有警告轉換為錯誤,開啟該選項,遇到警告都會中止編譯

-v gcc 執行時執行的詳細過程,gcc 及其相關程式的版本號 

GCC編譯選項

gcc g 在執行編譯工作的時候,總共需要4步 1.預處理,生成.i的檔案 預處理器cpp 2.將預處理後的檔案不轉換成組合語言,生成檔案.s 編譯器egcs 3.有彙編變為目標 機器 生成.o的檔案 彙編器as 4.連線目標 生成可執行程式 鏈結器ld 引數詳解 c 只啟用預處理,編譯,和彙編,也...

gcc 編譯選項

gcc 編譯選項,自己翻譯的.gcc 編譯選項,自己翻譯的.o 設定輸出檔名 c 只編譯,不連線.e 只做預編譯.pipe 在多個編譯過程之間使用管道.version 顯示版本.static 靜態連線.ansi c 模式下支援所有 iso c90 標準的 c 程式,c 模式下去除對 gnu c 擴充...

gcc 編譯選項

wall 大部分警告 wextra 一些額外的警告 werror 當出現警告時轉為錯誤,停止編譯 wconversion 一些可能改變值的隱式轉換,給出警告。wno unused parameter 函式中出現未使用的引數,不給出警告。wold style cast c風格的轉換,給出警告 wove...