我有一个项目使用log4cxx,boost等库,其头文件生成大量(重复)警告.有没有办法抑制来自库包含的警告(即#include <some-header.h>)或包含某些路径?我希望像往常一样在项目代码中使用-Wall和/或-Wextra而不会隐藏相关信息.我目前在make输出上使用grep,但我想要更好的东西.
在我寻求免费警告应用程序时,我已经开始使用-Werror来告诉gcc将所有警告视为错误.
这确实非常有用,因为有时我在大型构建输出中错过了一两个(严重)警告.不幸的是,我的项目使用的sqlite3包含许多警告,如sqlite网站中所述,无法消除(他们不想删除).
我想知道是否有一种方法可以使用一些#pragma我可以放在sqlite3.c文件中告诉gcc停止将警告视为仅对该文件的错误.
我尝试过:
#pragma GCC diagnostic ignored "-Werror"
Run Code Online (Sandbox Code Playgroud)
没有成功我也试图逐个列出导致问题的警告:
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wfloat-equal"
#pragma GCC diagnostic ignored "-Wundef"
...
Run Code Online (Sandbox Code Playgroud)
...遗憾的是,有些警告无法完全关闭(即初始化会从指针目标类型中丢弃限定符).
有什么想法/建议?