建議使用 Visual Studio 2017

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

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

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

選項用途
@指定回應檔。
/?列出編譯器選項。
/AI指定一個要搜尋的目錄,以解析傳遞給 #using 指示詞的檔案參考。
/analyze啟用程式碼分析
/arch為程式碼產生指定架構。
/bigobj增加 .obj 檔案中可定址區段的數目。
/C在前置處理過程中保留註解。
/c編譯而不連結。
/cgthreads指定 cl.exe 執行緒的數目,以用於最佳化及程式碼產生。
/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
產生瀏覽器檔案。/Fr 已取代。
/FS強制寫入要透過 MSPDBSRV.EXE 序列化的程式資料庫 (PDB) 檔案。
/FU強制使用某一檔名,就如同它已傳遞給 #using 指示詞一樣。
/Fx將插入的程式碼與原始程式檔合併。
/GA對 Windows 應用程式進行程式碼最佳化。
/Gd使用 __cdecl 呼叫慣例 (僅適用於 x86)。
/Ge已取代。 啟動堆疊探查。
/GF啟用字串共用。
/GH呼叫攔截函式 _pexit
/Gh呼叫攔截函式 _penter
/GL啟用整個程式最佳化。
/Gm啟用最少重建。
/GR啟用執行階段類型資訊 (RTTI)。
/Gr使用 __fastcall 呼叫慣例 (僅適用於 x86)。
/GS緩衝處理安全性檢查。
/Gs控制堆疊探查。
/GT對使用靜態執行緒區域儲存區配置的資料支援 Fiber 安全性。
/guard:cf加入控制流程防護安全性檢查。
/Gv使用 __vectorcall 呼叫慣例。 (僅限 x86 和 x64)
/Gw啟用整個程式全域資料最佳化。
/GX已取代。 啟用同步例外狀況處理。 改用 /EH
/Gy啟用函式階層連結。
/GZ已取代。 與 /RTC1 相同。
/Gz使用 __stdcall 呼叫慣例 (僅適用於 x86)。
/H已取代。 限制外部 (公用) 名稱的長度。
/HELP列出編譯器選項。
/homeparams在函式進入時,強制暫存器中所傳遞的參數寫入至堆疊上的位置。 這個編譯器選項只適用於 x64 編譯器 (原生和跨平台編譯)。
/hotpatch建立可線上修補的影像。
/I搜尋包含檔的目錄。
/J變更預設 char 類型。
/kernel編譯器和連結器將會建立可以在 Windows 核心中執行的二進位檔。
/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移除 fwait 區塊內的 try 命令。
/Qpar (自動平行化工具)啟用標記為 #pragma loop() 指示詞之迴圈的自動平行處理。
/Qsafe_fp_loads使用浮點值的整數移動指令,並停用特定浮點數負載最佳化。
/Qvec-report (自動向量化工具報告層級)啟用自動向量化的報告層級。
/RTC啟用執行階段錯誤檢查。
/sdl啟用其他安全性功能及警告。
/showIncludes在編譯時顯示包含檔清單。
/Tc

 /TC
指定 C 原始程式檔。
/Tp

 /TP
指定 C++ 原始程式檔。
/U移除某個預先定義巨集。
/u移除所有預先定義巨集。
/V已取代。 設定 obj 檔案版本字串。
/vd抑制或啟用隱藏的 vtordisp 類別成員。
/vmb對指向成員的指標使用最佳基底。
/vmg對指向成員的指標使用完整一般性。
/vmm宣告多重繼承。
/vms宣告單一繼承。
/vmv宣告虛擬繼承。
/volatile選取 volatile 關鍵字的解譯方式。
/w停用所有警告。
/W0, /W1, /W2, /W3, /W4設定要輸出的警告層級。
/w1, /w2, /w3, /w4為指定的警告設定警告層級。
/Wall啟用所有警告,包括預設停用的警告。
/wd停用指定的警告。
/we將指定的警告視為錯誤。
/WL從命令列編譯 C++ 原始程式碼時啟用一行錯誤和警告訊息診斷。
/wo只顯示指定的警告一次。
/Wp64已過時。 偵測 64 位元可移植性問題。
/Wv在指定的編譯器版本之後顯示未引入任何警告。
/WX將所有警告視為錯誤。
/X忽略標準 Include 目錄。
/Y-忽略目前組建中所有其他先行編譯標頭編譯器選項。
/Yc建立先行編譯標頭檔。
/Yd已取代。 將完整的偵錯資訊置於所有目的檔中。 改用 /Zi
/Yl在建立偵錯程式庫時插入一個 PCH 參考。
/Yu在建置時使用先行編譯標頭檔。
/Z7產生 C 7.0 相容的偵錯資訊。
/Za停用語言擴充功能。
/Zc指定 /Ze 下的標準行為。/Za、/Ze (停用語言擴充功能)
/Ze已取代。 啟用語言擴充功能。
/Zg已從 Visual C++ 2015 移除。 產生函式原型。
/ZI將偵錯資訊包括在與「編輯後繼續」相容的程式資料庫中。
/Zi產生完整偵錯資訊。
/Zl從 .obj 檔案移除預設程式庫名稱 (僅適用於 x86)。
/Zm指定先行編譯標頭的記憶體配置上限。
/Zp封裝結構成員。
/Zs僅檢查語法。
/ZW產生要在 Windows 執行階段上執行的輸出檔案。

C/C++ 建置參考
編譯器選項
設定編譯器選項

顯示: