【发布时间】:2020-03-08 23:16:40
【问题描述】:
我有一个与操作系统无关的 makefile(呃,我知道),它支持 GNU 和 MSVC 编译器(以及其他)。它总是在编译时生成 .o 目标文件,即使在为 MSVC 编译时(它需要 .obj 文件)。这不是一个大问题; cl 发出警告
cl : Command line warning D9024 : unrecognized source file type '.o', object file assumed
继续,编译成功。
我想删除这个难看的命令行警告,只有这个警告,但我想不出任何办法来做到这一点。
IGNORE 之类的参数似乎并没有抑制它,例如使用
cl -IGNORE:D9024 ...
以及抑制代码内生成警告的技术(如this one)不适用于此命令行警告。
有没有办法抑制D9024?
否则(并且最好),有没有办法告诉 MSVC 提供的 .o 文件是目标文件,所以它不需要这样假设?
【问题讨论】:
-
所以它检测到.o不是一个源文件并处理它。不得不佩服古人的智慧。
-
如果您还提供带有 /c 选项的 cl.exe,则不应向其发送目标文件。为什么它认为应该获取源文件时却接收到目标文件?
-
@0-0 我不这样做... 将我的
.o文件与cl链接时发生错误,没有/c标志 -
@HansPassant 我不明白,这发生在链接时(没有传递源文件),如果目标文件被命名为
.obj,则不会出现此警告
标签: c++ visual-c++ suppress-warnings