由於gcc命令選項太多,以下只列部分常用選項(按a->z排列):
-ansi 支援ansi/iso c的標準語法,取消gnu的語法擴充套件中與標準有衝突部分(但這一項並不能保證生成ansi相容**)
–b machine 在有的時候,gcc編譯器編譯出來的目標**並不是在執行這個編譯動作的機器上執行而是另外一台機器,這種編譯叫做交叉編譯,用來執行最終目標**的得機器叫做目標機,machine就是用來指明目標機的型別的
-c 只編譯不鏈結
-dmacro 以字串「1」定義 macro 巨集。
-dmacro=defn 以字串「defn」定義 macro 巨集。
-e 只執行 c 預編譯器。
-fpic 使gcc生成位置無關的**,這適合安裝到乙個共享庫。
-g 把除錯資訊加入到可執行的檔案裡.
-ggdb 在可執行程式中包含gnu debugger(gdb)才能識別的大量除錯資訊
-idir 將dir目錄加入搜尋標頭檔案的目錄路徑。
–imacros file 同-include file 一樣。不過這個檔案在具體編譯的時候只有裡面定義的巨集才起作用,所以值用來在file檔案裡面定義巨集。
-include file 在編譯之前,把file包含進去,相當於在所有編譯的原始檔最前面加入了乙個#include 語句,這樣做更「省油」。
-llibrary 鏈結library庫
-ldir 將dir目錄加入搜尋庫的目錄路徑,在沒特別指明情況下,gcc將優先於靜態庫使用共享庫
-m486 針對 486 進行**優化。
-mcpu=type 針對不同的cpu使用相應的cpu命令,可選的type有i386,i486,pentium,i686.
-mieee-fp 使用ieee標準進行浮點數比較
-mm 輸出乙個make相容的相關列表
-mno-ieee-fp 不使用ieee標準進行浮點數的比較
-mrtd 強行將函式引數個數固定的函式用ret num返回,節省呼叫函式的一條指令
-msoft-float 輸出包含浮點庫呼叫的目標**
-mshort 把int型別作為16位處理,相當於short int
–nostartfiles 在連線的時候不把系統相關的啟動**連線進來。
–nostdlib 在連線的時候不把系統相關的啟動檔案和系統相關的庫連線進來。
–nostdinc 在搜尋include 的檔案路徑中去掉標準的c語言標頭檔案搜尋路徑,例如stdio.h檔案就是放在標準標頭檔案搜尋路徑下。
–nostdinc++ 同上,只是去掉的是標準c++語言的標頭檔案搜尋路徑。
-o 產生的可執行檔案指定乙個檔名來代替 a.out
-o0 不進行優化處理。
-o 或者-o1 選項告訴 gcc 對源**進行基本優化
-o2 選項告訴 gcc 產生盡可能小和盡可能快的**,比o1更進一步
-o3 比 -o2 更進一步優化,包括 inline 函式。
-p 或者 -pg 告訴 gcc 編譯 時為 prof 命令建立剖析(profile)資訊
-pedantic 允許發出ansi/iso c標準所列出的所有警告
-pedantic-errors 允許發出ansi/iso c標準所列出的所有錯誤
-pipe 編譯器編譯時各個階段的資訊是儲存到臨時檔案的,如果你不想
用臨時檔案的話可以通過管道也行.這個命令選項就用上了.不過有些系統不支援.
-s 編譯選項告訴 gcc 在為 c **產生了組合語言檔案後停止編譯
-shared 生成共享目標檔案。通常用在建立共享庫時。
-static 鏈結靜態庫,即執行靜態鏈結預設情況下gcc只鏈結共享庫
-traditonal 支援kernighan & ritchie c語法(如用舊式語法定義函式)
-umacro 取消對 macro 巨集的定義。-v 顯示在編譯過程的每一步中用到的命令
-w 關閉所有警告
-wall 允許發出gcc能提供的所有有用的警告。也可以用-w來標記指定的警告
-werror 把所有警告轉換為錯誤,以在警告發生時中止編譯過程
–wno-import 禁止對巨集#import提出警告
-x none 用字尾識別,關閉語言識別.
********************程式副檔名介紹******************************==
原始程式碼的副檔名指出所用編寫程式所用的語言,以及相對應的處
理方法:
.c c 原始程式 ; 預處理、編譯、彙編
.c c++ 原始程式 ; 預處理、編譯、彙編
.cc c++ 原始程式 ; 預處理、編譯、彙編
.cxx c++ 原始程式 ; 預處理、編譯、彙編
.m objective-c 原始程式 ; 預處理、編譯、彙編
.i 已經過預處理之 c 原始程式 ; 編譯、彙編
.ii 已經過預處理之 c++ 原始程式 ; 編譯、彙編
.s 組合語言原始程式 ; 彙編
.s 組合語言原始程式 ; 預處理、彙編
.h 預處理檔案(標標頭檔案) ; (不常出現在指令行)
其他副檔名的檔案是由鏈結程式來處理,通常有:
.o object file
.a archive file
GCC 命令選項使用詳解
gcc 命令列詳解 1 gcc包含的c c 編譯器 gcc cc c g gcc和cc是一樣的,c 和g 是一樣的,一般c程式就用gcc編譯,c 程式就用g 編譯 2 gcc的基本用法 gcc test.c這樣將編譯出乙個名為a.out的程式 gcc test.c o test這樣將編譯出乙個名為t...
gcc命令與gdb命令常用選項
用法 gcc 選項 檔名 選項 學用命令 1 編譯.c生成可執行檔案 gcc o hello world hello world.c2 編譯.c檔案生成目錄檔案 gcc 0 hello world.o c hello world.c gcc o hello world hello world.o4 ...
GCC編譯選項
gcc g 在執行編譯工作的時候,總共需要4步 1.預處理,生成.i的檔案 預處理器cpp 2.將預處理後的檔案不轉換成組合語言,生成檔案.s 編譯器egcs 3.有彙編變為目標 機器 生成.o的檔案 彙編器as 4.連線目標 生成可執行程式 鏈結器ld 引數詳解 c 只啟用預處理,編譯,和彙編,也...