CL 工作

更新:2010 年 9 月

包裝 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 (最小 CPU 架構)

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 (使用先行編譯標頭檔)。 同時,請參閱這個資料表中的 PrecompiledHeaderFilePrecompiledHeaderOutputFile 參數。

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 參數。

指定用於儲存此工作之追蹤記錄檔的中繼目錄。

如需詳細資訊,請參閱本表中的 TLogReadFilesTLogWriteFiles 參數。

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) 包含工作所讀取之輸入檔案的名稱,並由專案建置系統用於支援累加建置。 如需詳細資訊,請參閱本表中的 TrackerLogDirectoryTrackFileAccess 參數。

TLogWriteFiles

選擇性 ITaskItem[] 參數。

指定項目陣列,這些項目表示「檔案寫入追蹤記錄檔」(Write File Tracking Log)。

檔案寫入追蹤記錄檔 (.tlog) 包含工作所寫入之輸出檔案的名稱,並由專案建置系統用於支援累加建置。 如需詳細資訊,請參閱本表中的 TrackerLogDirectoryTrackFileAccess 參數。

TrackFileAccess

選擇性 Boolean 參數。

如果 true,會追蹤檔案存取模式。

如需詳細資訊,請參閱本表中的 TLogReadFilesTLogWriteFiles 參數。

請參閱

其他資源

MSBuild 工作參考

變更記錄

日期

記錄

原因

2010 年 9 月

已加入 AssemblerOutputBasicRuntimeChecksCallingConventionCompileAs 的工作參數/命令列選項等價。

客戶回函。

2010 年 8 月

定義的讀取檔案與寫入檔案追蹤記錄檔 (.tlog)。

客戶回函。