C/C++ 編譯器(CL.EXE)選項

-優化-

/O1 最小化空間                          /Op[-] 改善浮點數一致性
/O2 最大化速度                          /Os 優選代碼空間
/Oa 假設沒有別名                        /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0)               /Ow 假設交叉函數別名
/Od 禁用優化(默認值)                    /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啓用全局優化                        /Oy[-] 啓用框架指針省略
/Oi 啓用內部函數

-代碼生成-

/G3 爲 80386 進行優化                   /Gh 啓用 _penter 函數調用
/G4 爲 80486 進行優化                   /GH 啓用 _pexit 函數調用
/G5 爲 Pentium 進行優化                 /GR[-] 啓用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化       /GX[-] 啓用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化     /EHs 啓用 C++ EH (沒有 SEH 異常)
/GB 爲混合模型進行優化(默認)            /EHa 啓用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定                    /EHc extern "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 未初始化的本地用法檢查
/clr[:noAssembly] 爲公共語言運行庫編譯
    noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
    SSE - 啓用支持 SSE 的 CPU 可用的指令
    SSE2 - 啓用支持 SSE2 的 CPU 可用的指令

-輸出文件-

/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 啓用調試信息                        /Ze 啓用擴展(默認)
/ZI 啓用“編輯並繼續”調試信息          /Zl 省略 .OBJ 中的默認庫名
/Z7 啓用舊式調試信息                    /Zg 生成函數原型
/Zd 僅有行號調試信息                    /Zs 只進行語法檢查
/Zp[n] 在 n 字節邊界上包裝結構          /vd{0|1} 禁用/啓用 vtordisp
/Za 禁用擴展(暗指 /Op)                  /vm<x> 指向成員的指針類型
/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 [鏈接器選項和庫]

發佈了38 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章