我正在编译第三方库,并不关心修复库中存在的警告,但我不希望它们污染Qt Creator中的 Issues 窗格。
我已尝试遵循建议here,但在启用-Wall
之后没有编译器标志可禁用-Wno-enum-compare
。
阅读this后,我尝试删除这样的标志:
CFLAGS -= -Wall
但这也不起作用。所以我尝试了this advice:
QMAKE_CXXFLAGS_WARN_OFF -= -Wall
仍然没有。
所以我查看了生成的Makefile
,发现了这个:
CFLAGS = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES)
所以我尝试从这两个变量中删除标志:
CFLAGS -= -Wall
CXXFLAGS -= -Wall
仍然没有。你应该如何删除这个编译器标志?!
答案 0 :(得分:24)
最简单的解决方案是:
CONFIG += warn_off
感谢评论中的peppe。
这两个变量将-Wall
标志插入Makefile
:
QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_ON
所以要删除-Wall
,您需要将其从这两个中移除。
QMAKE_CFLAGS_WARN_ON -= -Wall
QMAKE_CXXFLAGS_WARN_ON -= -Wall
warn_off
就是这么做的。
答案 1 :(得分:8)
正如“peppe”在评论中也指出的那样,根据以下文档,Qt'ish方式是这样的:CONFIG += warn_off/on
warn_on
:编译器应输出尽可能多的警告。如果指定了warn_off,则忽略此项。
warn_off
:编译器应输出尽可能少的警告。
CONFIG文档可在here中找到。
QMAKE_CXXFLAGS_WARN_OFF/ON
变量不需要显式设置,因为它们由qmake处理。