首页 > 解决方案 > cl.exe /c - 命令行警告 D9002

问题描述

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

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感到困惑。

有没有办法覆盖这些默认选项,或者抑制这些警告的输出?

标签: windowscommand-linecompilationlinkercl

解决方案


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

cl /c /nologo main.c

目标文件的名称隐含在源文件名中。前面的编译器调用输出 main.obj。


推荐阅读