在旧版本的gcc上使用`-Wno-implicit-fallthrough`

时间:2018-03-31 23:00:46

标签: linux gcc suppress-warnings gcc-warning fall-through

我有一个在gcc 4.8.4下构建的项目。我尝试使用gcc 7构建,并注意到很多-Wimplicit-fallthrough=警告。 As far as I'm aware,这确实是在gcc版本7中添加的。我现在正在构建时使用-Wno-implicit-fallthrough来抑制这些警告。回到旧版本的gcc,保持-Wno-implicit-fallthrough编译器标志导致任何错误,即使我不相信gcc 4识别此选项。怎么会?具体是-Wno-选项是否允许不被识别?

1 个答案:

答案 0 :(得分:3)

来自man gcc

  

当请求无法识别的警告选项时(例如,          -Wunknown-warning),GCC发出诊断声明该选项是          未识别。但是,如果使用-Wno-形式,则行为为          略有不同:没有为-Wno-unknown-warning生成诊断          除非正在制作其他诊断信息。这允许使用          使用旧编译器的新-Wno-选项,但如果出现问题,可以使用          编译器警告存在无法识别的选项。

总结一下:如果一切顺利,将忽略未知的-Wno-*开关以保持兼容性。