依分類排列的編譯器選項
更新:2007 年 11 月
以下是編譯器選項的綜合分類清單。如需依字母順序排列的清單,請參閱依字母順序排列的編譯器選項。
最佳化
選項 |
用途 |
---|---|
建立小型程式碼。 |
|
建立快速程式碼。 |
|
控制內嵌展開。 |
|
停用最佳化。 |
|
使用全域最佳化。 |
|
產生內建函式。 |
|
偏好小的程式碼。 |
|
偏好快的程式碼。 |
|
使用最大最佳化 (/Ob2gity /Gs)。 |
|
省略框架指標 (僅適用於 x86)。 |
程式碼產生
選項 |
用途 |
---|---|
在程式碼產生時使用 SSE 或 SSE2 指令 (僅適用於 x86)。 |
|
增加 .obj 檔中可定址區段的數目。 |
|
產生輸出檔案,以便在 Common Language Runtime 上執行。 |
|
指定例外處理模型。 |
|
產生已為特定 x64 架構最佳化的程式碼,或為 AMD64 和 延伸記憶體 64 技術 (Extended Memory 64 Technology,EM64T) 架構中微架構特性最佳化的程式碼。 |
|
指定浮點行為。 |
|
為 Itanium 處理器執行最佳化。只有 IPF 跨平台編譯器或 IPF 原生編譯器才有提供。 |
|
為 Itanium2 處理器執行最佳化。只有 IPF 跨平台編譯器或 IPF 原生編譯器才有提供。 |
|
使用 __cdecl 呼叫慣例 (僅適用於 x86)。 |
|
啟動堆疊探查。 |
|
啟用字串共用。 |
|
呼叫攔截函式 _penter。 |
|
呼叫攔截函式 _pexit。 |
|
啟用整個程式最佳化。 |
|
啟用最少重建。 |
|
啟用執行階段型別資訊 (RTTI)。 |
|
使用 __fastcall 呼叫慣例 (僅適用於 x86)。 |
|
控制堆疊探查。 |
|
對使用靜態執行緒區域儲存區配置的資料支援 Fiber 安全性。 |
|
啟用同步例外處理。 |
|
啟用函式階層連結。 |
|
使用 __stdcall 呼叫慣例 (僅適用於 x86)。 |
|
使用 MSVCRT.lib 建立多執行緒 DLL。 |
|
使用 MSVCRTD.lib 建立偵錯多執行緒 DLL。 |
|
使用 LIBCMT.lib 建立多執行緒可執行檔。 |
|
使用 LIBCMTD.lib 建立偵錯多執行緒可執行檔。 |
|
產生快速超越函式。 |
|
移除 try 區塊內的 fwait 命令。 |
輸出檔
選項 |
用途 |
---|---|
建立清單檔 設定清單檔名稱。 |
|
建立清單檔 設定清單檔名稱。 |
|
重新命名程式資料庫檔案。 |
|
重新命名可執行檔。 |
|
建立對應檔 (Mapfile)。 |
|
建立目的檔。 |
|
指定先行編譯標頭檔的名稱。 |
|
產生瀏覽器檔案。 |
|
將插入的程式碼與原始程式檔合併。 |
偵錯
選項 |
用途 |
---|---|
緩衝區安全性檢查。 |
|
與 /RTC1 相同。 |
|
在函式進入時,強制暫存器中所傳遞的參數寫入至堆疊上的位置。這個編譯器選項只適用於 x64 編譯器 (原生和跨平台編譯)。 |
|
啟用執行階段錯誤檢查。 |
|
偵測 64 位元可移植性問題。 |
|
將完整的偵錯資訊置於所有目的檔中。 |
|
在建立偵錯程式庫時插入一個 PCH 參考。 |
|
產生 C 7.0 相容的偵錯資訊。 |
|
產生完整偵錯資訊。 |
|
將偵錯資訊包括在與「編輯後繼續」相容的程式資料庫中 (僅適用於 x86)。 |
|
產生可偵錯最佳化程式碼。只有 IPF 跨平台編譯器或 IPF 原生編譯器才有提供。 |
前置處理器 (Preprocessor)
選項 |
用途 |
---|---|
指定一個要搜尋的目錄,以解析傳遞給 #using 指示詞的檔案參考。 |
|
在前置處理過程中保留註解。 |
|
定義常數和巨集。 |
|
複製前置處理器輸出至標準輸出。 |
|
複製前置處理器輸出至標準輸出。 |
|
前置處理指定的包含檔。 |
|
強制使用某一檔名,就如同它已傳遞給 #using 指示詞一樣。 |
|
搜尋包含檔的目錄。 |
|
將前置處理器輸出寫入檔案。 |
|
移除某個預先定義巨集。 |
|
移除所有預先定義巨集。 |
|
忽略標準 Include 目錄。 |
語言
選項 |
用途 |
---|---|
在原始程式碼中啟用 #pragma omp。 |
|
抑制或啟用隱藏的 vtordisp 類別成員。 |
|
對指向成員的指標使用最佳基底。 |
|
對指向成員的指標使用完整一般性。 |
|
宣告多重繼承。 |
|
宣告單一繼承。 |
|
宣告虛擬繼承。 |
|
停用語言擴充功能。 |
|
指定 /Ze 下的標準行為。 |
|
啟用語言擴充功能。 |
|
產生函式原型。 |
|
從 .obj 檔案移除預設程式庫名稱。 |
|
/Zpn |
封裝結構成員。 |
僅檢查語法。 |
連結
選項 |
用途 |
---|---|
設定堆疊大小。 |
|
建立動態連結程式庫。 |
|
建立偵錯動態連結程式庫。 |
|
建立 MSIL 模組。 |
|
傳遞指定的選項給 LINK。 |
|
使用 MSVCRT.lib 編譯以建立多執行緒 DLL。 |
|
使用 MSVCRTD.lib 編譯以建立偵錯多執行緒 DLL。 |
|
使用 LIBCMT.lib 編譯以建立多執行緒可執行檔。 |
|
使用 LIBCMTD.lib 編譯以建立偵錯多執行緒可執行檔。 |
先行編譯標頭
選項 |
用途 |
---|---|
忽略目前組建中所有其他先行編譯標頭編譯器選項。 |
|
建立先行編譯標頭檔。 |
|
將完整的偵錯資訊置於所有目的檔中。 |
|
在建置時使用先行編譯標頭檔。 |
其他
選項 |
用途 |
---|---|
列出編譯器選項。 |
|
指定回應檔 (Response File)。 |
|
啟用程式碼分析。 |
|
編譯而不連結。 |
|
將文件註解處理成 XML 檔案。 |
|
讓您直接提供內部編譯器錯誤 (ICE) 資訊給 Visual C++ 團隊。 |
|
顯示在診斷測試中傳遞給 cl.exe 的原始程式檔完整路徑。 |
|
限制外部 (共用) 名稱的長度。 |
|
列出編譯器選項。 |
|
建立可線上修補的影像。 |
|
變更預設 char 型別。 |
|
同時建置多重原始程式檔。 |
|
隱藏登入程式的啟始資訊。 |
|
在必須從浮點型別轉換為整數型別時,抑制呼叫 Helper 函式 _ftol (僅適用於 x86)。 |
|
根據 B CPU 逐步偵錯的 errata,不會產生指令順序,而導致意外結果(僅適用於 IPF)。 |
|
根據 C CPU 逐步偵錯的 errata,不會產生指令順序,而導致意外結果(僅適用於 IPF)。 |
|
不要使用上層 96 浮點暫存器(僅適用於 IPF)。 |
|
產生影像加上與位置有關的程式碼 (僅適用於 IPF)。 |
|
為不在執行階段建立函式的程式增強效能(僅適用於 IPF)。 |
|
在編譯時顯示所有包含檔清單。 |
|
指定 C 原始程式檔。 |
|
指定 C++ 原始程式檔。 |
|
設定版本字串。 |
|
啟用所有警告,包括預設停用的警告。 |
|
設定警告層級。 |
|
停用所有警告。 |
|
從命令列編譯 C++ 原始程式碼時啟用一行錯誤和警告訊息診斷。 |
|
指定先行編譯標頭檔的記憶體配置上限。 |