1. 程式人生 > >微軟C/C++ 編譯器選項

微軟C/C++ 編譯器選項

微軟C/C++ 編譯器選項 
 
-優化- 
 
/O1 
 最小化空間 
 
/Op[-] 
 改善浮點數一致性 
 
/O2 
 最大化速度 
 
/Os 
 優選程式碼空間 
 
/Oa 
 假設沒有別名 
 
/Ot 
 優選程式碼速度 
 
/Ob<n> 
 內聯展開(預設 n=0) 
 
/Ow 
 假設交叉函式別名 
 
/Od 
 禁用優化(預設值) 
 
/Ox 
 最大化選項。(/Ogityb2 /Gs) 
 
/Og 
 啟用全域性優化 
 
/Oy[-] 
 啟用框架指標省略 
 
/Oi 
 啟用內部函式 
 
-程式碼生成- 
 
/G3 
 為 80386 進行優化 
 
/GH 
 啟用 _pexit 函式呼叫 
 
/G4 
 為 80486 進行優化 
 
/GR[-] 
 啟用 C++ RTTI 
 
/G5 
 為 Pentium 進行優化 
 
/GX[-] 
 啟用 C++ EH(與 /EHsc 相同) 
 
/G6 
 為 PPro、P-II、P-III 進行優化 
 
/EHs 
 啟用 C++ EH(無 SEH 異常) 
 
/GB 
 為混合模型進行優化(預設) 
 
/EHa 
 啟用 C++ EH(w/ SEH 異常) 
 
/Gd 
 __cdecl 呼叫約定 
 
/EHc 
 外部“C”預設為 nothrow 
 
/Gr 
 __fastcall 呼叫約定 
 
/GT 
 生成纖維安全 TLS 訪問 
 
/Gz 
 __stdcall 呼叫約定 
 
/Gm[-] 
 啟用最小重新生成 
 
/GA 
 為 Windows 應用程式進行優化 
 
/GL[-] 
 啟用連結時程式碼生成 
 
/Gf 
 啟用字串池 
 
/QIfdiv[-] 
 啟用 Pentium FDIV 修復 
 
/GF 
 啟用只讀字串池  
 
/QI0f[-] 
 啟用 Pentium 0x0f 修復 
 
/Gy 
 分隔連結器函式 
 
/QIfist[-] 
 使用 FIST 而不是 ftol() 
 
/GZ 
 啟用堆疊檢查 (/RTCs) 
 
/RTC1 
 啟用快速檢查 (/RTCsu) 
 
/Ge 
 對所有函式強制堆疊檢查 
 
/RTCc 
 轉換為較小的型別檢查 
 
/Gs[num]              
 控制堆疊檢查呼叫 
 
/RTCs 
 堆疊幀執行時檢查 
 
/GS 
 啟用安全檢查 
 
/RTCu 
 未初始化的本地用法檢查 
 
/Gh 
 啟用 _penter 函式呼叫 
 
/clr[:noAssembly] 
 為公共語言執行時庫編譯noAssembly - 不產生程式集 
 
-輸出檔案- 
 
/Fa[file]           
 命名程式集列表檔案 
 
/Fo<file> 
 命名物件檔案 
 
/FA[sc]                 
 配置程式集列表 
 
/Fp<file> 
 命名預編譯標頭檔案 
 
/Fd[file]            
 命名 .PDB 檔案  
 
/Fr[file] 
 命名源瀏覽器檔案 
 
/Fe<file> 
 命名可執行檔案 
 
/FR[file] 
 命名擴充套件 .SBR 檔案 
 
/Fm[file] 
 命名對映檔案 
 
-前處理器- 
 
/AI<dir> 
 新增到程式集搜尋路徑 
 
/Fx 
 將插入的程式碼合併到檔案 
 
/FU<file> 
 強制使用程式集/模組 
 
/FI<file> 
 命名強制包含檔案 
 
/C 
 不抽出註釋 
 
/U<name> 
 移除預定義巨集 
 
/D<name>{=|#}<text> 
 定義巨集 
 
/u 
 移除所有預定義巨集 
 
/E 
 預處理到 stdout 
 
/I<dir> 
 新增到包含搜尋路徑 
 
/EP 
 預處理到 stdout,沒有 #line 
 
/X 
 忽略“標準位置” 
 
/P 
 預處理到檔案 
 
-語言- 
 
/Zi 
 啟用除錯資訊 
 
/Zl 
 忽略 .OBJ 中的預設庫名 
 
/ZI 
 啟用“編輯並繼續”除錯資訊  
 
/Zg 
 生成函式原型 
 
/Z7 
 啟用舊式除錯資訊  
 
/Zs 
 只進行語法檢查 
 
/Zd 
 僅有行號除錯資訊 
 
/vd{0|1} 
 禁用/啟用 vtordisp 
 
/Zp[n]  
 在 n 位元組邊界上包裝結構 
 
/vm<x> 
 指向成員的指標型別 
 
/Za 
 禁用擴充套件(暗指 /Op) 
 
/noBool 
 禁用“bool”關鍵字 
 
/Ze 
 啟用擴充套件(預設) 
 
/Zc:arg1[,arg2] 
 C++ 語言一致性,這裡的引數可以是:forScope - 對範圍規則強制使用標準 C++;wchar_t - wchar_t 是本機型別,不是 typedef 
 
- 雜項 - 
 
@<file> 
 選項響應檔案 
 
/wo<n> 
 發出一次警告 n 
 
/?, /help 
 列印此幫助訊息 
 
/w<l><n> 
 為 n 設定警告等級 1-4 
 
/c 
 只編譯,不連結  
 
/W<n> 
 設定警告等級(預設 n=1) 
 
/H<num> 
 最大外部名稱長度 
 
/Wall 
 啟用所有警告 
 
/J 
 預設 char 型別是 unsigned 
 
/Wp64 
 啟用 64 位埠定位警告 
 
/nologo 
 取消顯示版權訊息 
 
/WX 
 將警告視為錯誤 
 
/showIncludes 
 顯示包含檔名 
 
/WL 
 啟用單行診斷 
 
/Tc<source file> 
 將檔案編譯為 .c 
 
/Yc[file] 
 建立 .PCH 檔案 
 
/Tp<source file> 
 將檔案編譯為 .cpp 
 
/Yd 
 將除錯資訊放在每個 .OBJ 中 
 
/TC 
 將所有檔案編譯為 .c 
 
/Yl[sym] 
 為除錯庫插入 .PCH 引用 
 
/TP 
 將所有檔案編譯為 .cpp 
 
/Yu[file] 
 使用 .PCH 檔案 
 
/V<string> 
 設定版本字串 
 
/YX[file] 
 自動 .PCH 
 
/w 
 禁用所有警告 
 
/Y- 
 禁用所有 PCH 選項 
 
/wd<n> 
 禁用警告 n 
 
/Zm<n> 
 最大記憶體分配(預設為 %) 
 
/we<n> 
 將警告 n 視為錯誤 
 
-連結- 
 
/MD 
 與 MSVCRT.LIB 連結 
 
/MDd 
 與 MSVCRTD.LIB 除錯庫連結 
 
/ML 
 與 LIBC.LIB 連結 
 
/MLd 
 與 LIBCD.LIB 除錯庫連結 
 
/MT 
 與 LIBCMT.LIB 連結 
 
/MTd 
 與 LIBCMTD.LIB 除錯庫連結 
 
/LD 
 建立 .DLL 
 
/F<num> 
 設定堆疊大小 
 
/LDd 
 建立 .DLL 除錯庫 
 
/link 
 [連結器選項和庫]