Visual C 編譯器選項

2022-08-01 15:39:11 字數 3671 閱讀 2660

優化

/o1建立小**

/o2建立快速**

/oa假設沒有別名

/ob控制內聯展開

/od禁用優化

/og使用全域性優化

/oi生成內部函式

/op改善浮點數一致性

/os**大小優先

/ot**速度優先

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

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

/oy省略框架指標

**生成

/arch

使用 sse 或 sse2 指令生成**

/clr

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

/eh指定異常處理模型

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

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

/g5優化**以優選 pentium

/g6優化**以優選 pentium pro、pentium ii 和 pentium iii 處理器

/g7針對 pentium 4 或 athlon 優化**。

/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將除錯資訊包含在與「編輯並繼續」相容的程式資料庫中

語言

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

/vmb

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

/vmg

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

/vmm

宣告多重繼承

/vms

宣告單一繼承

/vmv

宣告虛擬繼承

/za禁用語言擴充套件

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

/ze啟用語言擴充套件

/zg生成函式原型

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

/zpn

封裝結構成員

/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指定預編譯頭記憶體分配限制

請參見

Visual C 編譯器選項

visual c 編譯器選項 選項 目的 指定響應檔案 列出編譯器選項 ai指定在解析傳遞到 using 指令的檔案引用時搜尋的目錄 arch 使用sse 或sse2 指令生成 c 在預處理期間保留注釋 c 編譯但不鏈結 clr 啟用c 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案 d 定義...

Visual C 編譯器選項

選項 目的 指定響應檔案 列出編譯器選項 ai指定在解析傳遞到 using 指令的檔案引用時搜尋的目錄 arch 使用 sse 或sse2 指令生成 c 在預處理期間保留注釋 c 編譯但不鏈結 clr 啟用 c 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案 d 定義常數和巨集 e 將預處理器...

Visual C 編譯器選項

visual c 編譯器選項 gd gr gz 呼叫約定 gd gr gz 這些選項確定 gd 為預設設定,對除c 成員函式和標記為 stdcall或 fastcall的函式以外的所有函式指定c 呼叫約定。gr 對除c 成員函式和標記為 cdecl或 stdcall的函式以外的所有函式指定 fast...