共用方式為


依字母順序排列的編譯器選項

以下是編譯器選項的完整字母順序清單。如需分類清單,請參閱依分類排列的編譯器選項

選項

用途

@

指定回應檔。

/?

列出編譯器選項。

/AI

指定一個要搜尋的目錄,以解析傳遞給 #using 指示詞的檔案參考。

/analyze

啟用程式碼分析

/arch

為程式碼產生指定結構。

/bigobj

增加 .obj 檔中可定址區段的數目。

/C

在前置處理過程中保留註解。

/c

編譯而不連結。

/clr

產生輸出檔案,以便在 Common Language Runtime 上執行。

/D

定義常數和巨集。

/doc

將文件註解處理成 XML 檔案。

/E

複製前置處理器輸出至標準輸出。

/EH

指定例外狀況處理模型。

/EP

複製前置處理器輸出至標準輸出。

/errorReport

讓您直接提供內部編譯器錯誤 (ICE) 資訊給 Visual C++ 團隊。

/F

設定堆疊大小。

/favor

產生已為特定 x64 架構最佳化的程式碼,或為 AMD64 和 延伸記憶體 64 技術 (Extended Memory 64 Technology,EM64T) 架構中微架構特性最佳化的程式碼。

/FA

建立清單檔。

/Fa

設定清單檔名稱。

/fc

顯示在診斷測試中傳遞給 cl.exe 的原始程式檔完整路徑。

/Fd

重新命名程式資料庫檔案。

/Fe

重新命名可執行檔。

/FI

前置處理指定的包含檔。

/Fi

設定前置處理過的輸出檔名稱。

/Fm

建立對應檔 (Mapfile)。

/Fo

建立目的檔。

/fp

指定浮點行為。

/Fp

指定先行編譯標頭檔的名稱。

/FR

/Fr

產生瀏覽器檔案。

/FU

強制使用某一檔名,就如同它已傳遞給 #using 指示詞一樣。

/Fx

將插入的程式碼與原始程式檔合併。

/G1

為 Itanium 處理器執行最佳化。只有 IPF 跨平台編譯器或 IPF 原生編譯器才有提供。

/G2

為 Itanium2 處理器最佳化 (預設值為 /G1 與 /G2 之間),只有 IPF 跨平台編譯器或 IPF 原生編譯器才有提供。

/GA

對 Windows 應用程式進行程式碼最佳化。

/Gd

使用 __cdecl 呼叫慣例 (僅適用於 x86)。

/Ge

啟動堆疊探查。

/GF

啟用字串共用。

/GH

呼叫攔截函式 _pexit

/Gh

呼叫攔截函式 _penter

/GL

啟用整個程式最佳化。

/Gm

啟用最少重建。

/GR

啟用執行階段型別資訊 (RTTI)。

/Gr

使用 __fastcall 呼叫慣例 (僅適用於 x86)。

/GS

緩衝處理安全性檢查。

/Gs

控制堆疊探查。

/GT

對使用靜態執行緒區域儲存區配置的資料支援 Fiber 安全性。

/GX

啟用同步例外狀況處理。

/Gy

啟用函式階層連結。

/GZ

/RTC1 相同。/RTC (執行階段錯誤檢查)

/Gz

使用 __stdcall 呼叫慣例 (僅適用於 x86)。

/H

限制外部 (公用) 名稱的長度。

/HELP

列出編譯器選項。

/homeparams

在函式進入時,強制暫存器中所傳遞的參數寫入至堆疊上的位置。這個編譯器選項只適用於 x64 編譯器 (原生和跨平台編譯)。

/hotpatch

建立可線上修補的影像。

/I

搜尋包含檔的目錄。

/J

變更預設 char 型別。

/kernel

編譯器和連結器將會建立在視窗核心可以執行的二進位檔。

/LD

建立動態連結程式庫。

/LDd

建立偵錯動態連結程式庫。

/link

傳遞指定的選項給 LINK。

/LN

建立 MSIL 模組。

/MD

使用 MSVCRT.lib 建立多執行緒 DLL。

/MDd

使用 MSVCRTD.lib 建立偵錯多執行緒 DLL。

/MP

使用多重處理序編譯多重原始程式檔。

/MT

使用 LIBCMT.lib 建立多執行緒可執行檔。

/MTd

使用 LIBCMTD.lib 建立偵錯多執行緒可執行檔。

/nologo

隱藏登入程式的啟始資訊。

/O1

建立小型程式碼。

/O2

建立快速程式碼。

/Ob

控制內嵌展開。

/Od

停用最佳化。

/Og

使用全域最佳化。

/Oi

產生內建函式。

/openmp

在原始程式碼中啟用 #pragma omp

/Os

偏好小的程式碼。

/Ot

偏好快的程式碼。

/Ox

使用最大最佳化 (/Ob2gity /Gs)。

/Oy

省略框架指標 (僅適用於 x86)。

/P

將前置處理器輸出寫入檔案。

/Qfast_transcendentals

產生快速超越函式。

/QIfist

在必須從浮點型別轉換為整數型別時,抑制 _ftol (僅適用於 x86)。

/Qimprecise_fwaits

移除 try 區塊內的 fwait 命令。

/QIPF_B

根據 B CPU 逐步偵錯的 errata,不會產生指令順序,而導致意外結果(僅適用於 IPF)。

/QIPF_C

根據 C CPU 逐步偵錯的 errata,不會產生指令順序,而導致意外結果(僅適用於 IPF)。

/QIPF_fr32

不要使用上層 96 浮點暫存器(僅適用於 IPF)。

/QIPF_noPIC

產生影像加上與位置有關的程式碼 (僅適用於 IPF)。

/QIPF_restrict_plabels

為不在執行階段建立函式的程式增強效能(僅適用於 IPF)。

/Qpar (自動平行化工具)

啟用標記為 #pragma 迴圈 () 指示詞重複的自動平行處理。

/Qvec-report (Auto-Vectorizer Reporting Level)

啟用自動 vectorization 的報表層級。

/RTC

啟用執行階段錯誤檢查。

/showIncludes

在編譯時顯示包含檔清單。

/Tc

/TC

指定 C 原始程式檔。

/Tp

/TP

指定 C++ 原始程式檔。

/U

移除某個預先定義巨集。

/u

移除所有預先定義巨集。

/V

設定版本字串。

/vd

抑制或啟用隱藏的 vtordisp 類別成員。

/vmb

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

/vmg

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

/vmm

宣告多重繼承。

/vms

宣告單一繼承。

/vmv

宣告虛擬繼承。

/volatile

選取 volatile 關鍵字的解譯方式。

/W

設定警告層級。

/w

停用所有警告。

/Wall

啟用所有警告,包括預設停用的警告。

/WL

從命令列編譯 C++ 原始程式碼時啟用一行錯誤和警告訊息診斷。

/Wp64

偵測 64 位元可移植性問題。

/X

忽略標準 Include 目錄。

/Y-

忽略目前組建中所有其他先行編譯標頭編譯器選項。

/Yc

建立先行編譯標頭檔。

/Yd

將完整的偵錯資訊置於所有目的檔中。

/Yl

在建立偵錯程式庫時插入一個 PCH 參考。

/Yu

在建置時使用先行編譯標頭檔。

/Z7

產生 C 7.0 相容的偵錯資訊。

/Za

停用語言擴充功能。

/Zc

指定 /Ze 下的標準行為。/Za、/Ze (停用語言擴充功能)

/Ze

啟用語言擴充功能。

/Zg

產生函式原型。

/ZI

將偵錯資訊包括在與「編輯後繼續」相容的程式資料庫中。

/Zi

產生完整偵錯資訊。

/Zl

從 .obj 檔案移除預設程式庫名稱 (僅適用於 x86)。

/Zm

指定先行編譯標頭的記憶體配置上限。

/Zp

封裝結構成員。

/Zs

僅檢查語法。

/ZW

在 Windows 執行階段產生輸出檔案執行。

請參閱

參考

編譯器選項

設定編譯器選項

其他資源

C/C++ 建置參考