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