在我寻求免费警告应用程序时,我已经开始使用-Werror告诉gcc将所有警告视为错误。
这确实非常有用,因为有时我在大型构建输出中错过了一两个(严重)警告。 不幸的是,我的项目使用的sqlite3包含许多警告,如sqlite网站所述,无法消除(他们不想删除)。
我想知道是否有一种方法可以使用一些#pragma我可以放在sqlite3.c文件中告诉gcc停止将警告视为仅对该文件的错误。
我尝试过:
#pragma GCC diagnostic ignored "-Werror"
没有成功 我还试图逐一列出导致问题的警告:
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wfloat-equal"
#pragma GCC diagnostic ignored "-Wundef"
...
...遗憾的是,有一些警告无法完全关闭(即初始化会丢弃指针目标类型的限定符)。
有任何想法/建议吗?
答案 0 :(得分:2)
您可以为sqlite3.c
的Makefile添加额外规则,该编译文件在没有-Werror
的情况下编译文件,或者根本没有任何警告。按照惯例,这样的事情就足够了:
sqlite3.o: sqlite3.c
$(CC) $(CFLAGS) -w -c sqlite3.c