CL 工作
包裝 Visual C++ 編譯器工具 (cl.exe)。編譯器產生可執行檔 (.exe)、動態連結程式庫 (.dll) 檔或程式碼模組 (.netmodule) 檔案。如需詳細資訊,請參閱 編譯器選項。
參數
下表說明 CL 工作的參數。大部分的工作參數及部分參數集會對應到命令列選項。
參數 |
描述 |
---|---|
AdditionalIncludeDirectories |
選擇性 String[] 參數。 將目錄加入至要搜尋 Include 檔的目錄清單。 如需詳細資訊,請參閱 /I (其他 Include 目錄)。 |
AdditionalOptions |
選擇性 String 參數。 命令列選項的清單。例如 "/option1 /option2 /option#"。使用這個參數來指定不由其他任何工作參數代表的命令列選項。 如需詳細資訊,請參閱 編譯器選項。 |
AdditionalUsingDirectories |
選擇性 String[] 參數。 指定編譯器要搜尋的目錄,以解析傳遞給 #using 指示詞的檔案參考。 如需詳細資訊,請參閱 /AI (指定中繼資料目錄)。 |
AlwaysAppend |
選擇性 String 參數。 一定會在命令列發出的字串。預設值為 "/c"。 |
AssemblerListingLocation |
建立包含組譯程式碼的清單檔。 如需詳細資訊,請參閱 /FA、/Fa (清單檔) 中的 /Fa 選項。 |
AssemblerOutput |
選擇性 String 參數。 建立包含組譯程式碼的清單檔。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
NoListing<無>
AssemblyCode/FA
AssemblyAndMachineCode/FAc
AssemblyAndSourceCode/FAs
All/FAcs
如需詳細資訊,請參閱 /FA、/Fa (清單檔) 中的 /FA、/FAc、/FAs 和 /FAcs 選項。 |
BasicRuntimeChecks |
選擇性 String 參數。 啟用和停用執行階段錯誤檢查功能搭配 runtime_checks Pragma。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Default<無>
StackFrameRuntimeCheck/RTCs
UninitializedLocalUsageCheck/RTCu
EnableFastChecks/RTC1
如需詳細資訊,請參閱 /RTC (執行階段錯誤檢查)。 |
BrowseInformation |
選擇性 Boolean 參數。 如果 true,會建立瀏覽資訊檔。 如需詳細資訊,請參閱 /FR、/Fr (建立 .Sbr 檔案) 中的 /FR 選項。 |
BrowseInformationFile |
選擇性 String 參數。 指定瀏覽資訊檔的檔案名稱。 如需詳細資訊,請參閱本資料表中的 BrowseInformation 參數,以及 /FR、/Fr (建立 .Sbr 檔案)。 |
BufferSecurityCheck |
選擇性 Boolean 參數。 如果 true,會偵測某些覆寫傳回位址的緩衝區滿溢 (Buffer Overrun),這是一種利用未強制執行緩衝區大小限制之程式碼的常用技術, 如需詳細資訊,請參閱 /GS (緩衝區安全性檢查)。 |
BuildingInIDE |
選擇性 Boolean 參數。 如果 true,會指出該 MSBuild 由 IDE 叫用。否則會在命令列叫用 MSBuild。 |
CallingConvention |
選擇性 String 參數。 指定呼叫慣例,此慣例決定函式引數推入至堆疊上的順序;不管是呼叫端函式或是被呼叫的函式在呼叫結束時從堆疊移除引數;以及編譯器用來辨認各個函式的名稱裝飾慣例。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Cdecl/Gd
FastCall/Gr
StdCall/Gz
如需詳細資訊,請參閱 /Gd、/Gr、/Gz (呼叫慣例)。 |
CompileAs |
選擇性 String 參數。 指定是否要將輸入檔編譯為 C 或 C++ 的原始程式檔。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Default<無>
CompileAsC/TC
CompileAsCpp/TP
如需詳細資訊,請參閱 /Tc、/Tp、/TC、/TP (指定原始程式檔類型)。 |
CompileAsManaged |
選擇性 String 參數。 啟用應用程式和元件,以便使用 Common Language Runtime (CLR) 中的功能。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
false<無>
true/clr
Pure/clr:pure
Safe/clr:safe
OldSyntax/clr:oldSyntax
如需詳細資訊,請參閱 /clr (Common Language Runtime 編譯)。 |
CreateHotpatchableImage |
選擇性 Boolean 參數。 如果 true,則通知編譯器準備 Hotpatch 的影像。這個參數可確保每個函式的第一個指令是兩個位元組,這是 Hotpatch 功能所需要的。 如需詳細資訊,請參閱 /hotpatch (建立可線上修補的影像)。 |
DebugInformationFormat |
選擇性 String 參數。 會選取為程式建立的偵錯資訊類型,以及這項資訊是要保存在目的檔 (.obj) 或程式資料庫 (PDB) 中。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
OldStyle/Z7
ProgramDatabase/Zi
EditAndContinue/ZI
如需詳細資訊,請參閱 /Z7、/Zi、/ZI (偵錯資訊格式)。 |
DisableLanguageExtensions |
選擇性 Boolean 參數。 如果 true,會通知編譯器發出不相容於 ANSI C 或 ANSI C++ 不相容的錯誤。 如需詳細資訊,請參閱 /Za、/Ze (停用語言擴充功能) 中的 /Za 選項。 |
DisableSpecificWarnings |
選擇性 String[] 參數。 停用分號分隔的清單中指定的警告編號。 如需詳細資訊,請參閱 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級) 中的 /wd 選項。 |
EnableEnhancedInstructionSet |
選擇性 String 參數。 指定使用 Streaming SIMD Extensions (SSE) 和 Streaming SIMD Extensions 2 (SSE2) 指令產生指令碼的架構。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
StreamingSIMDExtensions/arch:SSE
StreamingSIMDExtensions2/arch:SSE2
如需詳細資訊,請參閱 /arch (x86)。 |
EnableFiberSafeOptimizations |
選擇性 Boolean 參數。 如果 true,則支援使用靜態執行緒區域儲存區配置資料 Fiber 安全性,也就是使用 __declspec(thread) 進行資料配置。 如需詳細資訊,請參閱 /GT (支援 Fiber-Safe 執行緒區域儲存區)。 |
EnablePREfast |
選擇性 Boolean 參數。 如果 true,會啟用程式碼分析。 如需詳細資訊,請參閱 /analyze (程式碼分析)。 |
ErrorReporting |
選擇性 String 參數。 讓您直接向 Microsoft 提供內部編譯器錯誤 (ICE) 資訊。預設情況下,IDE 組建中的設定是 Prompt,而命令列組建中的設定是 Queue。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
None/errorReport:none
Prompt/errorReport:prompt
Queue/errorReport:queue
Send/errorReport:send
如需詳細資訊,請參閱 /errorReport (回報編譯器內部錯誤)。 |
ExceptionHandling |
選擇性 String 參數。 指定編譯器所使用的例外狀況處理模型。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
false<無>
Async/EHa
Sync/EHsc
SyncCThrow/EHs
如需詳細資訊,請參閱 /EH (例外狀況處理模型)。 |
ExpandAttributedSource |
選擇性 Boolean 參數。 如果 true,會建立將展開的屬性插入來源檔的清單檔。 如需詳細資訊,請參閱 /Fx (合併插入的程式碼)。 |
FavorSizeOrSpeed |
選擇性 String 參數。 指定是否要優先程式碼大小或程式碼速度。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Neither<無>
Size/Os
Speed/Ot
如需詳細資訊,請參閱 /Os、/Ot (偏好小的程式碼、偏好快的程式碼)。 |
FloatingPointExceptions |
選擇性 Boolean 參數。 如果 true,會啟用可靠的浮點例外狀況模型。例外狀況將在觸發之後立即引發。 如需詳細資訊,請參閱 /fp (指定浮點數行為) 中的 /fp:except 選項。 |
FloatingPointModel |
選擇性 String 參數。 設定浮點模型。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Precise/fp:precise
Strict/fp:strict
Fast/fp:fast
如需詳細資訊,請參閱 /fp (指定浮點數行為)。 |
ForceConformanceInForLoopScope |
選擇性 Boolean 參數。 如果 true,會在使用 Microsoft 擴充功能 (/ Ze) 的 for 迴圈中實作標準 C++ 行為。 如需詳細資訊,請參閱 /Zc:forScope (強制 for 迴圈範圍中的一致性)。 |
ForcedIncludeFiles |
選擇性 String[] 參數。 會使前置處理器處理一或多個指定的標頭檔。 如需詳細資訊,請參閱 /FI (命名強制的包含檔)。 |
ForcedUsingFiles |
選擇性 String[] 參數。 會使前置處理器處理一或多個指定的 #using 檔案。 如需詳細資訊,請參閱 /FU (命名強制的 #using 檔案)。 |
FunctionLevelLinking |
選擇性 Boolean 參數。 如果 true,可讓編譯器以封裝函式 (COMDAT) 的形式分別封裝各個函式。 如需詳細資訊,請參閱 /Gy (啟用函式階層連結)。 |
GenerateXMLDocumentationFiles |
選擇性 Boolean 參數。 如果 true,則使編譯器處理原始程式檔中的文件註解,並為每一個有文件註解的原始程式檔建立 .xdc 檔。 如需詳細資訊,請參閱 /doc (處理文件註解) (C/C++)。請參閱這個資料表中的 XMLDocumentationFileName 參數。 |
IgnoreStandardIncludePath |
選擇性 Boolean 參數。 如果 true,則防止編譯器在 PATH 和 INCLUDE 環境變數中指定的目錄中搜尋 include 檔。 如需詳細資訊,請參閱 /X (忽略標準 Include 路徑)。 |
InlineFunctionExpansion |
選擇性 String 參數。 指定組建的內嵌函式展開層級。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Default<無>
Disabled/Ob0
OnlyExplicitInline/Ob1
AnySuitable/Ob2
如需詳細資訊,請參閱 /Ob (內嵌函式展開)。 |
IntrinsicFunctions |
選擇性 Boolean 參數。 如果 true,會以內建或可協助應用程式快速執行之其他特殊形式的函式取代部分函式呼叫。 如需詳細資訊,請參閱 /Oi (產生內建函式)。 |
MinimalRebuild |
選擇性 Boolean 參數。 如果 true,則啟用最少重建,它會決定包含已變更 C++ 類別定義 (儲存於標頭 (.h) 檔中) 的 C++ 原始程式檔是否必須重新編譯。 如需詳細資訊,請參閱 /Gm (啟用最少重建)。 |
MultiProcessorCompilation |
選擇性 Boolean 參數。 如果 true,請使用多個處理器進行編譯。這個參數會為電腦中每個有效的處理器建立一個處理序。 如需詳細資訊,請參閱 /MP (使用多處理序建置)。同時,請參閱這個資料表中的 ProcessorNumber 參數。 |
ObjectFileName |
選擇性 String 參數。 指定要用來取代預設值的目的檔 (.obj) 名稱或目錄。 如需詳細資訊,請參閱 /Fo (目的檔名稱)。 |
ObjectFiles |
選擇性 String[] 參數。 物件檔案的清單。 |
OmitDefaultLibName |
選擇性 Boolean 參數。 如果 true,會省略物件 (.obj) 檔案中預設的 C 執行階段程式庫名稱。編譯器是預設為將程式庫名稱置入 .obj 檔案中,以便指引連結器到正確的程式庫。 如需詳細資訊,請參閱 /Zl (省略預設程式庫名稱)。 |
OmitFramePointers |
選擇性 Boolean 參數。 如果 true,會隱藏呼叫堆疊上框架指標的建立。 如需詳細資訊,請參閱 /Oy (框架指標省略)。 |
OpenMPSupport |
選擇性 Boolean 參數。 如果 true,會使編譯器處理 OpenMP 子句和指示詞。 如需詳細資訊,請參閱 /openmp (啟用 OpenMP 2.0 支援)。 |
Optimization |
選擇性 String 參數。 指定速度和大小的各種程式碼最佳化。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Disabled/Od
MinSpace/O1
MaxSpeed/O2
Full/Ox
如需詳細資訊,請參閱 /O 選項 (最佳化程式碼)。 |
PrecompiledHeader |
選擇性 String 參數。 建立或使用在建置期間先行編譯的標頭 (.pch) 檔。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
NotUsing<無>
Create/Yc
Use/Yu
如需詳細資訊,請參閱 /Yc (建立先行編譯標頭檔)和 /Yu (使用先行編譯標頭檔)。同時,請參閱這個資料表中的 PrecompiledHeaderFile 和 PrecompiledHeaderOutputFile 參數。 |
PrecompiledHeaderFile |
選擇性 String 參數。 指定要建立或使用的先行編譯標頭檔名稱。 如需詳細資訊,請參閱 /Yc (建立先行編譯標頭檔)和 /Yu (使用先行編譯標頭檔)。 |
PrecompiledHeaderOutputFile |
選擇性 String 參數。 指定先行編譯標頭的路徑名稱,而不要使用預設路徑名稱。 如需詳細資訊,請參閱 /Fp (命名 .Pch 檔案)。 |
PreprocessKeepComments |
選擇性 Boolean 參數。 如果 true,則在前置處理過程中保留註解。 如需詳細資訊,請參閱 /C (前置處理時保留註解)。 |
PreprocessorDefinitions |
選擇性 String[] 參數。 為您的原始程式檔 (Source File) 定義了前置處理符號。 如需詳細資訊,請參閱 /D (前置處理器定義)。 |
PreprocessOutput |
選擇性 ITaskItem[] 參數。 定義可由工作使用和發出的前置處理器輸出項目陣列。 |
PreprocessOutputPath |
選擇性 String 參數。 指定輸出檔的名稱,PreprocessToFile 參數會將前置處理的輸出寫入該檔案。 如需詳細資訊,請參閱 /Fi (前置處理輸出檔名稱)。 |
PreprocessSuppressLineNumbers |
選擇性 Boolean 參數。 如果 true,則前置處理 C 和 C++ 原始程式檔,並將前置處理過的檔案複製至標準輸出裝置。 如需詳細資訊,請參閱 /EP (前置處理至 stdout 不加 #line 指示詞)。 |
PreprocessToFile |
選擇性 Boolean 參數。 如果 true,則前置處理 C 和 C++ 原始程式檔,並將前置處理過的輸出寫入至檔案。 如需詳細資訊,請參閱 /P (前置處理至檔案)。 |
ProcessorNumber |
選擇性 Integer 參數。 指定要用於多處理器組譯的處理器數目上限。搭配使用這個參數與 MultiProcessorCompilation 參數。 |
ProgramDataBaseFileName |
選擇性 String 參數。 指定程式資料庫 (PDB) 檔案的檔案名稱。 如需詳細資訊,請參閱 /Fd (程式資料庫檔名)。 |
RuntimeLibrary |
選擇性 String 參數。 指出多執行緒模組是否為 DLL,並選取執行階段程式庫的正式版本或偵錯版本。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
MultiThreaded/MT
MultiThreadedDebug/MTd
MultiThreadedDLL/MD
MultiThreadedDebugDLL/MDd
如需詳細資訊,請參閱 /MD、/MT、/LD (使用執行階段程式庫)。 |
RuntimeTypeInfo |
選擇性 Boolean 參數。 如果 true,請在執行階段加入程式碼,以檢查 C++ 物件型別。 如需詳細資訊,請參閱 /GR (啟用執行階段型別資訊)。 |
ShowIncludes |
選擇性 Boolean 參數。 如果 true,使編譯器輸出包含檔案的清單。 如需詳細資訊,請參閱 /showIncludes (列示包含檔)。 |
SmallerTypeCheck |
選擇性 Boolean 參數。 如果 true,如果將值指派給較小的資料型別並造成資料遺漏,會報告執行階段錯誤。 如需詳細資訊,請參閱 /RTC (執行階段錯誤檢查) 中的 /RTCc 選項。 |
Sources |
必要的 ITaskItem[] 參數。 指定以空格分隔的原始程式檔清單。 |
StringPooling |
選擇性 Boolean 參數。 如果 true,會使編譯器在程式影像中建立一份完全相同的字串。 如需詳細資訊,請參閱 /GF (消除重複字串)。 |
StructMemberAlignment |
選擇性 String 參數。 指定結構中所有成員的位元組對齊。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
Default/Zp1
1Byte/Zp1
2Bytes/Zp2
4Bytes/Zp4
8Bytes/Zp8
16Bytes/Zp16
如需詳細資訊,請參閱 /Zp (結構成員對齊)。 |
SuppressStartupBanner |
選擇性 Boolean 參數。 如果 true,可防止在工作啟動時顯示版權和版本號碼訊息。 如需詳細資訊,請參閱 /nologo (隱藏程式啟始資訊) (C/C++)。 |
TrackerLogDirectory |
選擇性 String 參數。 指定用於儲存此工作之追蹤記錄檔的中繼目錄。 如需詳細資訊,請參閱本表中的 TLogReadFiles 和 TLogWriteFiles 參數。 |
TreatSpecificWarningsAsErrors |
選擇性 String[] 參數。 將指定的編譯器警告清單視為錯誤。 如需詳細資訊,請參閱 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級) 中的 /wen 選項。 |
TreatWarningAsError |
選擇性 Boolean 參數。 如果 true,則將所有編譯器警告視為錯誤。 如需詳細資訊,請參閱 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級) 中的 /WX 選項。 |
TreatWChar_tAsBuiltInType |
選擇性 Boolean 參數。 如果 true,會將 wchar_t 型別視為原生型別。 如需詳細資訊,請參閱 /Zc:wchar_t (wchar_t 是原生型別)。 |
UndefineAllPreprocessorDefinitions |
選擇性 Boolean 參數。 如果 true,會取消定義編譯器所定義的 Microsoft 專有符號。 如需詳細資訊,請參閱 /U、/u (取消定義符號) 中的 /u 選項。 |
UndefinePreprocessorDefinitions |
選擇性 String[] 參數。 指定一或多個要取消定義之前置處理器符號的清單。 如需詳細資訊,請參閱 /U、/u (取消定義符號) 中的 /U 選項。 |
UseFullPaths |
選擇性 Boolean 參數。 如果 true,則顯示原始程式碼檔之完整路徑 (傳遞給診斷中的編譯器)。 如需詳細資訊,請參閱 /FC (診斷中的原始程式碼檔之完整路徑)。 |
UseUnicodeForAssemblerListing |
選擇性 Boolean 參數。 如果 true,會以 UTF-8 格式建立輸出檔。 如需詳細資訊,請參閱 /FA、/Fa (清單檔) 中的 /FAu 選項。 |
WarningLevel |
選擇性 String 參數。 指定編譯器所產生的警告的最高層級。 指定下列其中一個值,其中每一個値均對應到一個命令列選項。
值命令列選項
TurnOffAllWarnings/W0
Level1/W1
Level2/W2
Level3/W3
Level4/W4
EnableAllWarnings/Wall
如需詳細資訊,請參閱 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級) 中的 /W 選項。 |
WholeProgramOptimization |
選擇性 Boolean 參數。 如果 true,則啟用整個程式最佳化。 如需詳細資訊,請參閱 /GL (整個程式最佳化)。 |
XMLDocumentationFileName |
選擇性 String 參數。 指定所產生的 XML 文件檔的名稱。這個參數可以是檔案或目錄名稱。 如需詳細資訊,請參閱 /doc (處理文件註解) (C/C++) 中的 name 引數。請參閱這個資料表中的 GenerateXMLDocumentationFiles 參數。 |
MinimalRebuildFromTracking |
選擇性 Boolean 參數。 如果 true,就會執行追蹤的累加建置;如果 false 則會執行重建。 |
TLogReadFiles |
選擇性 ITaskItem[] 參數。 指定項目陣列,這些項目表示「檔案讀取追蹤記錄檔」(Read File Tracking Log)。 檔案讀取追蹤記錄檔 (.tlog) 包含工作所讀取之輸入檔案的名稱,並由專案建置系統用於支援累加建置。如需詳細資訊,請參閱本表中的 TrackerLogDirectory 和 TrackFileAccess 參數。 |
TLogWriteFiles |
選擇性 ITaskItem[] 參數。 指定項目陣列,這些項目表示「檔案寫入追蹤記錄檔」(Write File Tracking Log)。 檔案寫入追蹤記錄檔 (.tlog) 包含工作所寫入之輸出檔案的名稱,並由專案建置系統用於支援累加建置。如需詳細資訊,請參閱本表中的 TrackerLogDirectory 和 TrackFileAccess 參數。 |
TrackFileAccess |
選擇性 Boolean 參數。 如果 true,會追蹤檔案存取模式。 如需詳細資訊,請參閱本表中的 TLogReadFiles 和 TLogWriteFiles 參數。 |