VC編譯器選項

2021-04-23 03:53:29 字數 3717 閱讀 8916

cl.exe 是控制 microsoft c 和 c++ 編譯器與鏈結器的 32 位工具。編譯器產生通用物件檔案格式 (coff) 物件 (.obj) 檔案。鏈結器產生可執行檔案 (.exe) 或動態鏈結庫檔案 (dll)。

注意,所有編譯器選項都區分大小寫。

若要編譯但不鏈結,請使用 /c。

使用 nmake 生成輸出檔案。

使用 bscmake 支援類瀏覽。

以下是乙個完整的編譯器選項分類列表。

優化 選項 作用

/o1 建立小**

/o2 建立快速**

/oa 假設沒有別名

/ob 控制內聯展開

/od 禁用優化

/og 使用全域性優化

/oi 生成內部函式

/op 改善浮點數一致性

/os **大小優先

/ot **速度優先

/ow 假定在函式呼叫中使用別名

/ox 使用最大優化 (/ob1gity /gs)

/oy 省略框架指標

**生成

選項 作用

/clr 啟用 c++ 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案

/eh 指定異常處理模型

/g3 優化**以優選 386 處理器。在 visual c++ 5.0 中已經停用,編譯器將忽略此選項

/g4 優化**以優選 486 處理器。在 visual c++ 5.0 中已經停用,編譯器將忽略此選項

/g5 優化**以優選 pentium

/gb 與 /g6 等效;將 _m_ix86 的值設定為 600

/gd 使用 __cdecl 呼叫約定

/ge 啟用堆疊探測

/gf

/gf 啟用字串池

/gh 呼叫掛鉤函式 _penter

/gh 呼叫掛鉤函式 _pexit

/gl 啟用全程式優化

/gm 啟用最小重新生成

/gr 啟用執行時型別資訊 (rtti)

/gr 使用 __fastcall 呼叫約定

/gs 控制堆疊探測

/gt 支援使用靜態執行緒本地儲存區分配的資料的纖程安全

/gx 啟用同步異常處理

/gy 啟用函式級鏈結

/gz 使用 __stdcall 呼叫約定

/md 使用 msvcrt.lib 建立多執行緒 dll

/mdd 使用 msvcrtd.lib 建立除錯多執行緒 dll

/ml 使用 libc.lib 建立單執行緒可執行檔案

/mld 使用 libcd.lib 建立除錯單執行緒可執行檔案

/mt 使用 libcmt.lib 建立多執行緒可執行檔案

/mtd 使用 libcmtd.lib 建立除錯多執行緒可執行檔案

輸出檔案

選項 作用

/fa

/fa 建立列表檔案

設定列表檔名

/fd 重新命名程式資料庫檔案

/fe 重新命名可執行檔案

/fm 建立對映檔案

/fo 建立物件檔案

/fp 指定預編譯頭檔名

/fr

/fr 生成瀏覽器檔案

/fx 將插入的**與原始檔合併

除錯 選項 作用

/gs 緩衝區安全檢查

/gz 與 /rtc1 相同

/rtc 啟用執行時錯誤檢查

/wp64 檢測 64 位可移植性問題

/yd 將完整的除錯資訊放在所有物件檔案中

/yl 建立除錯庫時插入 pch 引用

/z7 生成與 c 7.0 相容的除錯資訊

/zd 生成行號

/zi 生成完整的除錯資訊

預處理器

選項 作用

/ai 指定在解析傳遞到#using 指令的檔案引用時搜尋的目錄

/c 在預處理期間保留注釋

/d 定義常數和巨集

/e 將預處理器輸出複製到標準輸出

/ep 將預處理器輸出複製到標準輸出

/fl 預處理指定的包含檔案

/fu 強制使用檔名,就像它已被傳遞到#using 指令一樣

/i 在目錄中搜尋包含檔案

/p 將預處理器輸出寫入檔案

/u 移除預定義巨集

/u 移除所有的預定義巨集

/x 忽略標準包含目錄

/zi 將除錯資訊包含在與「編輯並繼續」相容的程式資料庫中

語言 選項 作用

/nobool 取消 c++ bool、true 和 false 關鍵字

/vd 取消或啟用隱藏的 vtordisp 類成員

/vmb 對指向成員的指標使用最佳的基

/vmg 對指向成員的指標使用完全一般性

/vmm 宣告多重繼承

/vms 宣告單一繼承

/vmv 宣告虛擬繼承

/za 禁用語言擴充套件

/zc 在 /ze 下指定標準行為

/ze 啟用語言擴充套件

/zg 生成函式原型

/zl 從 .obj 檔案中移除預設庫名

/zp n 封裝結構成員

/zs 只檢查語法

鏈結 選項 作用

/f 設定堆疊大小

/ld 建立動態鏈結庫

/ldd 建立除錯動態鏈結庫

/link 將指定的選項傳遞給 link

/md 使用 msvcrt.lib 編譯以建立多執行緒 dll

/mdd 使用 msvcrtd.lib 編譯以建立除錯多執行緒 dll

/ml 使用 libc.lib 編譯以建立單執行緒可執行檔案

/mld 使用 libcd.lib 編譯以建立除錯單執行緒可執行檔案

/mt 使用 libcmt.lib 編譯以建立多執行緒可執行檔案

/mtd 使用 libcmtd.lib 編譯以建立除錯多執行緒可執行檔案

預編譯頭

選項 作用

/y- 忽略當前生成中的所有其他預編譯頭編譯器選項

/yc 建立預編譯標頭檔案

/yd 將完整的除錯資訊放在所有物件檔案中

/yu 在生成期間使用預編譯標頭檔案

/yx 自動處理預編譯頭

雜項 選項 作用

@ 指定響應檔案

/? 列出編譯器選項

/c 編譯但不鏈結

/h 限制外部(公共)名稱的長度

/help 列出編譯器選項

/j 更改預設的 char 型別

/nologo 取消顯示登入版權標誌

/qi0f 確保 pentium 0f 指令沒有問題

/qifdiv fdiv、fprem、fptan 和 fpatan 指令有缺陷的 intel pentium 微處理器的變通方法

qifist 當需要從浮點型別轉換為整型時取消 helper 函式 _ftol 的呼叫

/showincludes 在編譯期間顯示所有包含檔案的列表

/tc

/tc 指定 c 原始檔

/tp

/tp 指定 c++ 原始檔

/v 設定版本字串

/w 設定警告等級

/w 禁用所有警告

/wall 啟用所有警告,包括預設情況下禁用的警告

/wl 在從命令列編譯 c++ 源**時啟用錯誤資訊和警告訊息的單行診斷

/zm 設定編譯器的記憶體分配限制    

VC編譯器選項

優化 o1 最小化空間 op 改善浮點數一致性 o2 最大化速度 os 優選 空間 oa 假設沒有別名 ot 優選 速度 ob內聯展開 預設 n 0 ow 假設交叉函式別名 od 禁用優化 預設值 ox 最大化選項。ogityb2 gs og 啟用全域性優化 oy 啟用框架指標省略 oi 啟用內部函...

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 是指乙個或多個編譯選項。在指定選項時,需要在選項前加正斜槓 或乙個短劃線 有一些選項還會帶有引數,使用 來指定選項的...