windows - 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
感到困惑。
有没有办法覆盖这些默认选项,或者抑制这些警告的输出?
解决方案
/OUT
不是编译器选项。如果要在不链接的情况下进行编译,请使用以下命令行:
cl /c /nologo main.c
目标文件的名称隐含在源文件名中。前面的编译器调用输出 main.obj。
推荐阅读
- reactjs - 如何修复 React/Redux/Firebase 错误上传文件到存储
- c# - 使用 process.start() 运行 cmd.exe 时如何引用存储在 Visual Studio 项目资源中的 exe 文件
- python - 为什么单击保存时页面/笔记本选项卡首先会发生变化?
- javascript - 从标签自动生成标签
- apache - 更大的 HTTPS 大小
- sql - 将列中的分隔值替换为另一个表中的值
- r - 如何根据其他行创建新的数据行
- git - 无需签出即可下载 Git LFS 文件
- javascript - 正确使用显示元素 onclick
- python - 如何让 gunicorn 和 flask 不消耗大量内存