我想知道是否可以在Qt-Creator中抑制编译器特定的警告。
我的g ++ - 4.5打印:
警告:条件表达式中的枚举和非枚举类型
我想摆脱它,因为它非常烦人。
谢谢!
答案 0 :(得分:7)
你需要使用它:
QMAKE_CXXFLAGS + = -Wno-enum-compare
例如,如果您收到以 -Wenum-compare 结尾的警告。
另请注意,根据GCC文档,无法抑制某些警告 take a look at this for ones that you can't suppress,这样你就没有得到了 错误的想法,你的旗帜不能正常工作。
显然,知道标志是否被传递给编译器的最好方法是查看编译器输出,并确保你的标志在那里,你应该看到 -Wno-enum-compare 例如,在命令行中强>,即使该标志没有抑制任何内容。您会惊讶地发现有关此类信息的信息有多难,需要进行一些挖掘,我最终会在编辑.pro文件时从自动完成中找到它,如果您在编辑.pro文件时遇到问题,按 Ctrl + Space (或开始输入单词并点击 Shift + Home ),获取可在.pro文件中使用的有效内容列表,就像任何其他常见的源文件。它帮助我找到正确的东西( QMAKE_CXXFLAGS ,因为事实证明,通常不是人们建议的,出于某种原因)......哦是的,这是关于Qt版本4.8,创建者2.4,所以它可能已经改变,因为这篇文章(他们似乎喜欢这么做,我看到新版本已经发生了巨大的变化)。
答案 1 :(得分:2)
我查看了gcc警告选项。 Gcc有选项-Wenum-compare
负责警告,但没有-Wno-enum-compare
。 -Wenum-compare
选项最有可能由-Wall
设置,除非明确设置。所以我建议禁用-Wall
答案 2 :(得分:1)
linux-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
或任何使用g ++的系统
*-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
答案 3 :(得分:0)
您可能有两种选择:
找到g ++发布的要删除的警告的名称,然后将它们添加到.pro文件中,并在前面加上“no-”将其添加到CFLAGS中。类似的东西:
CFLAGS + = -Wno-my-super-warning-I-found
答案 4 :(得分:0)
对于一些代码:
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wenum-compare")
// Some code than throwns warnings
QT_WARNING_POP