CL 任务

包装 Visual C++ 编译器工具 cl.exe。 编译器生成可执行 (.exe) 文件、动态链接库 (.dll) 文件或者代码模块 (. netmodule) 文件。 有关更多信息,请参见 编译器选项

参数

下表描述了 CL 任务的参数。 大多数的任务参数和少数几个参数集对应于命令行选项。

Parameter

说明

AdditionalIncludeDirectories

可选 String[] 参数。

将目录添加到要在其中搜索包含文件的目录列表中。

有关更多信息,请参见 /I(附加包含目录)

AdditionalOptions

可选 String 参数。

命令行选项的列表。 例如,"/option1 /option2 /option#"。 将此参数用于指定不用任何其他任务参数表示的命令行选项。

有关更多信息,请参见 编译器选项

AdditionalUsingDirectories

可选 String[] 参数。

指定在解析传递给 #using 指令的文件引用时编译器将搜索的目录。

有关更多信息,请参见 /AI(指定元数据目录)

AlwaysAppend

可选 String 参数。

始终在命令行上发出的字符串。 其默认值为“/c”。

AssemblerListingLocation

创建包含程序集代码的清单文件。

有关更多信息,请参见 /FA、/Fa(列出文件) 中的 /Fa 选项。

AssemblerOutput

可选 String 参数。

创建包含程序集代码的清单文件。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
NoListing<none>
AssemblyCode/FA
AssemblyAndMachineCode/FAc
AssemblyAndSourceCode/FAs
All/FAcs

有关更多信息,请参见 /FA、/Fa(列出文件) 中的 /FA/FAc/FAs/FAcs 选项。

BasicRuntimeChecks

可选 String 参数。

启用和禁用运行时错误检查功能,与 运行时检查 杂注一起使用。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
Default<none>
StackFrameRuntimeCheck/RTCs
UninitializedLocalUsageCheck/RTCu
EnableFastChecks/RTC1

有关更多信息,请参见 /RTC(运行时错误检查)

BrowseInformation

可选 Boolean 参数。

如果为 true,则创建浏览信息文件。

有关更多信息,请参见 /FR、/Fr(创建 .Sbr 文件) 中的 /FR 选项。

BrowseInformationFile

可选 String 参数。

指定浏览信息文件的文件名。

有关更多信息,请参见本表格中的 BrowseInformation 参数和 /FR、/Fr(创建 .Sbr 文件)

BufferSecurityCheck

可选 Boolean 参数。

如果为 true,将检测某些覆盖返回地址的缓冲区溢出,这是一种利用不强制缓冲区大小限制的代码的常用技术。

有关更多信息,请参见 /GS(缓冲区安全检查)

BuildingInIDE

可选 Boolean 参数。

如果为 true,则指示 MSBuild 被 IDE 调用。 否则,MSBuild 在命令行中调用。

CallingConvention

可选 String 参数。

指定调用约定,该约定用于确定函数参数入栈的顺序,调用结束时调用方函数或被调用函数是否从堆栈中移除参数,以及编译器用来标识各个函数的名称修饰约定。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
Cdecl/Gd
FastCall/Gr
StdCall/Gz

有关更多信息,请参见 /Gd、/Gr、/Gz(调用约定)

CompileAs

可选 String 参数。

指定是否将输入文件编译为 C 或 C++ 源文件。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
Default<none>
CompileAsC/TC
CompileAsCpp/TP

有关更多信息,请参见 /Tc、/Tp、/TC、/TP(指定源文件类型)

CompileAsManaged

可选 String 参数。

使应用程序和组件能够使用公共语言运行时 (CLR) 中的功能。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
false<none>
true/clr
Pure/clr:pure
Safe/clr:safe
OldSyntax/clr:oldSyntax

有关更多信息,请参见 /clr(公共语言运行时编译)

CreateHotpatchableImage

可选 Boolean 参数。

如果为 true,则通知编译器为热修补准备映像。 参数确保每个函数的第一个指令为两个字节,这是热修补的要求。

有关更多信息,请参见 /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 参数。

使用流式处理 SIMD 扩展 (SSE) 和流式处理 SIMD 扩展 2 (SSE2) 指令指定生成代码的结构。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
StreamingSIMDExtensions/arch:SSE
StreamingSIMDExtensions2/arch:SSE2

有关更多信息,请参见 /arch (x86)

EnableFiberSafeOptimizations

可选 Boolean 参数。

如果为 true,则支持使用静态线程本地存储区分配的数据(即用 __declspec(thread) 分配的数据)的纤程安全。

有关更多信息,请参见 /GT(支持纤程安全的线程本地存储区)

EnablePREfast

可选 Boolean 参数。

如果为 true,则启用代码分析。

有关更多信息,请参见 /analyze(代码分析)

ErrorReporting

可选 String 参数。

允许您将内部编译器错误 (ICE) 信息直接提供给 Microsoft。 默认情况下,IDE 生成中的设置为 Prompt,而在命令行生成中的设置为 Queue

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
None/errorReport:none
Prompt/errorReport:prompt
Queue/errorReport:queue
Send/errorReport:send

有关更多信息,请参见 /errorReport(报告内部编译器错误)

ExceptionHandling

可选 String 参数。

指定编译器要使用的异常处理模型。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
false<none>
Async/EHa
Sync/EHsc
SyncCThrow/EHs

有关更多信息,请参见 /EH(异常处理模型)

ExpandAttributedSource

可选 Boolean 参数。

如果为 true,则创建已扩展的特性插入到源代码文件的列表文件。

有关更多信息,请参见 /Fx(合并插入的代码)

FavorSizeOrSpeed

可选 String 参数。

指定是否优选代码大小或代码速度。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
Neither<none>
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 环境变量中指定的目录中搜索包含文件。

有关更多信息,请参见 /X(忽略标准包含路径)

InlineFunctionExpansion

可选 String 参数。

指定生成的内联函数展开的级别。

指定以下值之一,其中的每个值均对应于命令行选项。

值命令行选项
Default<none>
Disabled/Ob0
OnlyExplicitInline/Ob1
AnySuitable/Ob2

有关更多信息,请参见 /Ob(内联函数展开)

IntrinsicFunctions

可选 Boolean 参数。

如果为 true,将用有助于应用程序更快运行的内部函数或其他特殊形式的函数替换某些函数调用。

有关更多信息,请参见 /Oi(生成内部函数)

MinimalRebuild

可选 Boolean 参数。

如果为 true,将启用最小重新生成,它确定是否必须重新编译包含已更改的 C++ 类定义的 C++ 源文件,该定义存储在头 (.h) 文件中。

有关更多信息,请参见 /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<none>
Create/Yc
Use/Yu

有关更多信息,请参见/Yc(创建预编译的头文件)/Yu(使用预编译的头文件)。 此外,请参阅本表中的 PrecompiledHeaderFilePrecompiledHeaderOutputFile 参数。

PrecompiledHeaderFile

可选 String 参数。

指定要创建或使用的预编译头文件名。

有关更多信息,请参见/Yc(创建预编译的头文件)/Yu(使用预编译的头文件)

PrecompiledHeaderOutputFile

可选 String 参数。

指定预编译头的路径名,而不使用默认路径名。

有关更多信息,请参见 /Fp(命名 .Pch 文件)

PreprocessKeepComments

可选 Boolean 参数。

如果为 true,将在预处理期间保留注释。

有关更多信息,请参见 /C(在预处理期间保留注释)

PreprocessorDefinitions

可选 String[] 参数。

定义源文件的预处理符号。

有关更多信息,请参见 /D(预处理器定义)

PreprocessOutput

可选 ITaskItem[] 参数。

定义可以由任务使用和发出的预处理器输出项数组。

PreprocessOutputPath

可选 String 参数。

指定输出文件的名称,PreprocessToFile 参数向其写入预处理的输出。

有关更多信息,请参见 /Fi(预处理输出文件名)

PreprocessSuppressLineNumbers

可选 Boolean 参数。

如果为 true,将预处理 C 和 C++ 源文件,并将预处理后的文件复制到标准输出设备中。

有关更多信息,请参见 /EP(不使用 #line 指令预处理到 stdout)

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(警告等级) 中的 /Wn 选项。

WholeProgramOptimization

可选 Boolean 参数。

如果为 true,将启用全程序优化。

有关更多信息,请参见 /GL(全程序优化)

XMLDocumentationFileName

可选 String 参数。

指定所生成的 XML 文档文件的名称。 此参数可以是一个文件或目录的名称。

有关更多信息,请参见 /doc(处理文档注释)(C/C++)中的 name 参数。 另请参见本表中的 GenerateXMLDocumentationFiles 参数。

MinimalRebuildFromTracking

可选 Boolean 参数。

如果为 true,则会执行跟踪的增量生成;如果为 false,则执行重新生成。

TLogReadFiles

可选 ITaskItem[] 参数。

指定项的数组,这些项表示“读取文件跟踪日志”。

读取文件跟踪日志 (.tlog) 包含输入文件的名称,这些文件由任务读取,并由项目生成系统用于支持增量生成。 有关更多信息,请参见本表中的 TrackerLogDirectoryTrackFileAccess 参数。

TLogWriteFiles

可选 ITaskItem[] 参数。

指定项的数组,这些项表示“写入文件跟踪日志”。

写入文件跟踪日志 (.tlog) 包含输出文件的名称,这些文件由任务写入,并由项目生成系统用于支持增量生成。 有关更多信息,请参见本表中的 TrackerLogDirectoryTrackFileAccess 参数。

TrackFileAccess

可选 Boolean 参数。

如果为 true,则跟踪文件访问模式。

有关更多信息,请参见本表中的 TLogReadFilesTLogWriteFiles 参数。

请参见

其他资源

MSBuild 任务参考