CL.exe 是控制 Microsoft C 和 C++ 編譯器與鏈接器的 32 位工具。編譯器產(chǎn)生通用對(duì)象文件格式 (COFF)
對(duì)象 (.obj) 文件。鏈接器產(chǎn)生可執(zhí)行文件 (.exe) 或動(dòng)" />
VC2008編譯器
CL.exe 是控制 Microsoft C 和 C++ 編譯器與鏈接器的 32 位工具。編譯器產(chǎn)生通用對(duì)象文件格式 (COFF)
對(duì)象 (.obj) 文件。鏈接器產(chǎn)生可執(zhí)行文件 (.exe) 或動(dòng)態(tài)鏈接庫(kù)文件 (DLL)。
注意,所有編譯器選項(xiàng)都區(qū)分大小寫(xiě)。
&s>
hy;
用法如下:
CL [option...] file... [option | file]... [lib...] [@commandfile] [/link linkopt...]
option : 一個(gè)或多個(gè) CL 選項(xiàng)。請(qǐng)注意,所有選項(xiàng)都應(yīng)用于所有指定的源文件。選項(xiàng)是由一個(gè)
正斜杠 (/) 或一個(gè)短劃線 () 指定的。如果某個(gè)選項(xiàng)帶有參數(shù),則該選項(xiàng)的說(shuō)明指
定在選項(xiàng)和參數(shù)之間是否允許有空格。選項(xiàng)名(/HELP 選項(xiàng)除外)區(qū)分大小寫(xiě)。有關(guān)
更多信息,請(qǐng)參見(jiàn) CL 選項(xiàng)的順序。
/c : 編譯但不鏈接
/Zs : 檢查語(yǔ)法
/ : 列出編譯器選項(xiàng)
/arch : 使用 SSE 或 SSE2 指令生成代碼
/arch:SSE2
/clr : 啟用 C++ 的托管擴(kuò)展并產(chǎn)生在公共語(yǔ)言運(yùn)行庫(kù)上運(yùn)行的輸出文件
/F : 設(shè)置堆棧大小 | 此選項(xiàng)設(shè)置程序堆棧大。ㄒ宰止(jié)為單位)。
如果不使用此選項(xiàng),堆棧大小默認(rèn)為 1 MB
/F 100
/Fe : 重命名可執(zhí)行文件
/Feexe.exe
/G7 :針對(duì) Pentium 4 或 Athlon 優(yōu)化代碼。
/GA :優(yōu)化 Windows 應(yīng)用程序的代碼
/GL :?jiǎn)⒂萌绦騼?yōu)化
/Gm :?jiǎn)⒂米钚≈匦律?span style="display:none">Twd紅軟基地
/HELP :列出編譯器選項(xiàng)
/I :在目錄中搜索包含文件 | 指定源文件目錄 include
/I"e:VCinclude"
/link : 將指定的選項(xiàng)傳遞給 LINK
/MD : 使用 MSVCRT.lib 創(chuàng)建多線程 DLL
/ML : 使用 LIBC.lib 創(chuàng)建單線程可執(zhí)行文件
/MT : 使用 LIBCMT.lib 創(chuàng)建多線程可執(zhí)行文件
/O1 : 創(chuàng)建小代碼
/O2 : 創(chuàng)建快速代碼
/Os : 代碼大小優(yōu)先
/W : 設(shè)置警告等級(jí)
/W3
/Ot : 代碼速度優(yōu)先
/LD : 創(chuàng)建動(dòng)態(tài)鏈接庫(kù)
/Ox : 使用最大優(yōu)化
/Zs : 只檢查語(yǔ)法
/TC : 指定 C 源文件
/TP : 指定 C++ 源文件
如果出現(xiàn):命令行 warning D9024 :無(wú)法識(shí)別的源文件類型“FilesJavajdk1.6.0_10include”
,假定為對(duì)象文件
cl: 命令行 warning D9024 :無(wú)法識(shí)別的源文件類型“FilesJavajdk1.6.0_10includew
in32”,假定為對(duì)象文件
指定文件的擴(kuò)展名未被識(shí)別。該文件被假定為是一個(gè)對(duì)象文件并被傳遞到鏈接器。
下列擴(kuò)展名可被識(shí)別:
.c(C 源文件)
.cxx(C++ 源文件)
.cpp(C++ 源文件)
.obj(對(duì)象文件)
.lib(庫(kù)文件)
.def(模塊定義文件)
.exp(鏈接器導(dǎo)出文件,由 LINK /LIB 創(chuàng)建)
命令行錯(cuò)誤 D4027源文件“<filename>”被忽略
CL.exe 忽略輸入源文件。
可能的原因
在帶有 /c 選項(xiàng)的命令行上,/Fo 選項(xiàng)與輸出文件名之間存在空格。例如:
cl /c /Fo output.obj input.c
因?yàn)樵?/Fo 與 output.obj 之間存在空格,所以 CL.exe 將 output.obj 作為輸入文件的名稱。若要修復(fù)此問(wèn)題,請(qǐng)刪除該空格:
cl /c /Fooutput.obj input.c
>