VC2008编译器
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF)
对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。
注意,所有编译器选项都区分大小写。
&s>
hy;
用法如下:
CL [option...] file... [option | file]... [lib...] [@commandfile] [/link linkopt...]
option : 一个或多个 CL 选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个
正斜杠 (/) 或一个短划线 () 指定的。如果某个选项带有参数,则该选项的说明指
定在选项和参数之间是否允许有空格。选项名(/HELP 选项除外)区分大小写。有关
更多信息,请参见 CL 选项的顺序。
/c : 编译但不链接
/Zs : 检查语法
/ : 列出编译器选项
/arch : 使用 SSE 或 SSE2 指令生成代码
/arch:SSE2
/clr : 启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件
/F : 设置堆栈大小 | 此选项设置程序堆栈大小(以字节为单位)。
如果不使用此选项,堆栈大小默认为 1 MB
/F 100
/Fe : 重命名可执行文件
/Feexe.exe
/G7 :针对 Pentium 4 或 Athlon 优化代码。
/GA :优化 Windows 应用程序的代码
/GL :启用全程序优化
/Gm :启用最小重新生成
/HELP :列出编译器选项
/I :在目录中搜索包含文件 | 指定源文件目录 include
/I"e:VCinclude"
/link : 将指定的选项传递给 LINK
/MD : 使用 MSVCRT.lib 创建多线程 DLL
/ML : 使用 LIBC.lib 创建单线程可执行文件
/MT : 使用 LIBCMT.lib 创建多线程可执行文件
/O1 : 创建小代码
/O2 : 创建快速代码
/Os : 代码大小优先
/W : 设置警告等级
/W3
/Ot : 代码速度优先
/LD : 创建动态链接库
/Ox : 使用最大优化
/Zs : 只检查语法
/TC : 指定 C 源文件
/TP : 指定 C++ 源文件
如果出现:命令行 warning D9024 :无法识别的源文件类型“FilesJavajdk1.6.0_10include”
,假定为对象文件
cl: 命令行 warning D9024 :无法识别的源文件类型“FilesJavajdk1.6.0_10includew
in32”,假定为对象文件
指定文件的扩展名未被识别。该文件被假定为是一个对象文件并被传递到链接器。
下列扩展名可被识别:
.c(C 源文件)
.cxx(C++ 源文件)
.cpp(C++ 源文件)
.obj(对象文件)
.lib(库文件)
.def(模块定义文件)
.exp(链接器导出文件,由 LINK /LIB 创建)
命令行错误 D4027源文件“<filename>”被忽略
CL.exe 忽略输入源文件。
可能的原因
在带有 /c 选项的命令行上,/Fo 选项与输出文件名之间存在空格。例如:
cl /c /Fo output.obj input.c
因为在 /Fo 与 output.obj 之间存在空格,所以 CL.exe 将 output.obj 作为输入文件的名称。若要修复此问题,请删除该空格:
cl /c /Fooutput.obj input.c
>