我正在尝试从命令行使用微软的编译器(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
似乎被这些意外的默认选项搞糊涂了。
有没有办法覆盖这些默认选项,或者抑制这些警告的输出?
发布于 2020-09-22 08:23:42
/OUT
不是编译器选项。如果要在不使用链接的情况下进行编译,请使用以下命令行:
cl /c /nologo main.c
目标文件的名称由源文件名隐含。前面的编译器调用输出main.obj。
https://stackoverflow.com/questions/64000992
复制相似问题