cl.exe / c-命令行警告D9002

时间:2020-09-21 23:03:21

标签: windows command-line compilation linker cl

我正在尝试从命令行使用Microsoft的编译器(cl)来生成未链接的目标文件:

cl /c /nologo /OUT:main.obj main.c

main.c是一个空的main函数:

int main( void ) { return 0; }

已生成目标文件,但是cl输出一些D9002警告:

cl : Command line warning D9002 : ignoring unknown option '/OU'
cl : Command line warning D9002 : ignoring unknown option '/OT'
cl : Command line warning D9002 : ignoring unknown option '/O:'
cl : Command line warning D9002 : ignoring unknown option '/Om'
cl : Command line warning D9002 : ignoring unknown option '/Oa'
cl : Command line warning D9002 : ignoring unknown option '/On'
cl : Command line warning D9002 : ignoring unknown option '/O.'
cl : Command line warning D9002 : ignoring unknown option '/Oo'
cl : Command line warning D9002 : ignoring unknown option '/Ob'
cl : Command line warning D9002 : ignoring unknown option '/Oj'

据我了解,这些链接器选项会自动传递到cl,因为它也用于链接。

但是,就我而言,由于我没有调用链接器(通过指定/C),似乎cl被这些意外的默认选项所迷惑。

是否有方法可以覆盖这些默认选项,或者禁止显示这些警告?

1 个答案:

答案 0 :(得分:1)

/OUT不是编译器选项。如果要编译而不链接,请使用以下命令行:

cl /c /nologo main.c

源文件名隐含目标文件的名称。上一个编译器调用输出main.obj。