使用 gcc
我可以在命令行上抛出一堆 -Wsome-issue
和 -Werror=other-issue
标志,然后稍后在接近尾声的地方用一个 -w
标志取消它们。
clang
似乎不是这种情况。尾随的 -w
会抑制一些警告,但不会抑制其他警告。参见 here举个例子。我知道我可以通过 -Wno-some-issue
和 -Wno-error=other-issue
手动单独禁用每个警告,但从长远来看这真的很痛苦术语。
我错过了什么吗?有没有办法取消所有早期的警告标志? -w
可以抑制某些警告但不能抑制其他警告的原因吗?
背景:我的具体用例是一个包含混合源文件的库。一些新的和一些古老的、半第三方的东西,我们永远不想看,更不用说编辑了。该项目在全局设置了一些半严格的警告标志,但对于这几个文件,我想覆盖全局标志并禁用所有警告和 warnings-as-werrors。在 CMake 中,这是通过为这些文件设置 COMPILE_OPTIONS
属性来完成的,它将给定的标志附加到全局标志之后。使用 gcc
这工作得很好,但使用 clang
证明是一件令人头疼的事情。
(是的,我知道我可以重新组织项目以强制将这些文件编译到一个单独的目标中,但我希望避免这种情况。)
最佳答案
你需要的标志是-Wno-everything
。
关于c++ - Clang:覆盖之前在命令行中指定的所有警告和警告为错误的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590255/