VC編譯器選項

2021-03-31 11:59:15 字數 4007 閱讀 4504

-優化- 

/o1 

最小化空間 

/op[-] 

改善浮點數一致性 

/o2 

最大化速度 

/os 

優選**空間 

/oa 

假設沒有別名 

/ot 

優選**速度 

/ob內聯展開(預設 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命名物件檔案 

/fa[sc]                 

配置程式集列表 

/fp命名預編譯標頭檔案 

/fd[file]            

命名 .pdb 檔案  

/fr[file] 

命名源瀏覽器檔案 

/fe命名可執行檔案 

/fr[file] 

命名擴充套件 .sbr 檔案 

/fm[file] 

命名對映檔案 

-預處理器- 

/ai新增到程式集搜尋路徑 

/fx 

將插入的**合併到檔案 

/fu強制使用程式集/模組 

/fi命名強制包含檔案 

/c 不抽出注釋 

/u移除預定義巨集 

/d定義巨集 

/u 移除所有預定義巨集 

/e 預處理到 stdout 

/i新增到包含搜尋路徑 

/ep 

預處理到 stdout,沒有 #line 

/x 忽略「標準位置」 

/p 預處理到檔案 

-語言- 

/zi 

啟用除錯資訊 

/zl 

忽略 .obj 中的預設庫名 

/zi 

啟用「編輯並繼續」除錯資訊  

/zg 

生成函式原型 

/z7 

啟用舊式除錯資訊  

/zs 

只進行語法檢查 

/zd 

僅有行號除錯資訊 

/vd 

禁用/啟用 vtordisp 

/zp[n]  

在 n 位元組邊界上包裝結構 

/vm指向成員的指標型別 

/za 

禁用擴充套件(暗指 /op) 

/nobool 

禁用「bool」關鍵字 

/ze 

啟用擴充套件(預設) 

/zc:arg1[,arg2] 

c++ 語言一致性,這裡的引數可以是:forscope - 對範圍規則強制使用標準 c++;wchar_t - wchar_t 是本機型別,不是 typedef 

- 雜項 - 

@選項響應檔案 

/wo發出一次警告 n 

/?, /help 

列印此幫助訊息 

/w為 n 設定警告等級 1-4 

/c 只編譯,不鏈結  

/w設定警告等級(預設 n=1) 

/h最大外部名稱長度 

/wall 

啟用所有警告 

/j 預設 char 型別是 unsigned 

/wp64 

啟用 64 位埠定位警告 

/nologo 

取消顯示版權訊息 

/wx 

將警告視為錯誤 

/showincludes 

顯示包含檔名 

/wl 

啟用單行診斷 

/tc將檔案編譯為 .c 

/yc[file] 

建立 .pch 檔案 

/tp將檔案編譯為 .cpp 

/yd 

將除錯資訊放在每個 .obj 中 

/tc 

將所有檔案編譯為 .c 

/yl[sym] 

為除錯庫插入 .pch 引用 

/tp 

將所有檔案編譯為 .cpp 

/yu[file] 

使用 .pch 檔案 

/v設定版本字串 

/yx[file] 

自動 .pch 

/w 禁用所有警告 

/y- 

禁用所有 pch 選項 

/wd禁用警告 n 

/zm最大記憶體分配(預設為 %) 

/we將警告 n 視為錯誤 

-鏈結- 

/md 

與 msvcrt.lib 鏈結 

/mdd 

與 msvcrtd.lib 除錯庫鏈結 

/ml 

與 libc.lib 鏈結 

/mld 

與 libcd.lib 除錯庫鏈結 

/mt 

與 libcmt.lib 鏈結 

/mtd 

與 libcmtd.lib 除錯庫鏈結 

/ld 

建立 .dll 

/f設定堆疊大小 

/ldd 

建立 .dll 除錯庫 

/link 

[鏈結器選項和庫] 

VC編譯器選項

cl.exe 是控制 microsoft c 和 c 編譯器與鏈結器的 32 位工具。編譯器產生通用物件檔案格式 coff 物件 obj 檔案。鏈結器產生可執行檔案 exe 或動態鏈結庫檔案 dll 注意,所有編譯器選項都區分大小寫。若要編譯但不鏈結,請使用 c。使用 nmake 生成輸出檔案。使用...

vc編譯器選項

cl.exe 是控制 microsoft c 和 c 編譯器與鏈結器的 32 位工具。編譯器產生通用物件檔案格式 coff 物件 obj 檔案。鏈結器產生可執行檔案 exe 或動態鏈結庫檔案 dll 注意,所有編譯器選項都區分大小寫。若要編譯但不鏈結,請使用 c。使用 nmake 生成輸出檔案。使用...

VC編譯器引數與選項詳解

cl option.file.option file lib.command file link link opt.各命令列引數的意義如下 1 option 命令列中的 option 是指乙個或多個編譯選項。在指定選項時,需要在選項前加正斜槓 或乙個短劃線 有一些選項還會帶有引數,使用 來指定選項的...