微軟C/C++ 編譯器選項
阿新 • • 發佈:2019-02-19
微軟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
[連結器選項和庫]
-優化-
/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
[連結器選項和庫]