【发布时间】:2020-09-21 23:03:21
【问题描述】:
我正在尝试从命令行使用 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 似乎被这些意想不到的默认选项弄糊涂了。
有没有办法覆盖这些默认选项,或禁止输出这些警告?
【问题讨论】:
-
cl将/OUT:main.obj解析为无效的/OU /OT /O: /Om ...。请注意,/Oi 不会发出警告。 -
哇...我怎么错过了!谢谢??????
标签: windows command-line compilation linker cl