我正在使用Clang 3.8编译一个来自项目中不同来源的文件.这是一个临时的拐杖,因为这个文件是我也使用的库的补充,它所拥有的代码将成为该库下一个版本的一部分.然而,这些人的警告标志不像我那么严格.
我对这些警告并不感兴趣,因为它们是良性的,我不保留该文件,并且它会在几个月内消失.当然,我可以有选择地删除一两个警告,但我认为在这种情况下更有意义的是禁用它生成的所有警告,因为我可以稍后更改我的项目的警告设置,更多的事件可能会出现它.
我试过了#pragma clang diagnostic ignored "-Weverything",但是Clang警告说这-Weverything是一个未知的警告组.
我如何要求Clang不为该文件生成任何警告?
Ale*_*sov 12
实际上,"-Weverything"不是一组警告,而是一个传递给编译器的特殊选项.以下是处理这种情况的代码:lib/Basic/Warnings.cpp:118
您仍然可以使用稍微不同的规则/标志来编译有问题的源文件,就像您用于其他来源一样:
clang -Wno-everything foo.c
Run Code Online (Sandbox Code Playgroud)
但是,我建议明确禁用每个警告#pragma.
如果您禁用所有警告,然后升级编译器,那么您可能会遗漏一些新的警告,这可能很重要(例如,未定义的行为检查,安全检查等).
另外,想象一下如果文件在三个月后没有消失会发生什么,但永远留在项目中.
如果您需要编译器标志在 GCC 和 Clang 之间保持一致,它们都有-w标志:
$ clang --help | grep -i suppress
-w Suppress all warnings
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8384 次 |
| 最近记录: |