我想知道是否有可能在Qt-Creator中禁止编译器特定的警告。
我的g ++ – 4.5打印:
警告:条件expression式中的枚举types和非枚举types
我想摆脱它,因为这是非常烦人的。
谢谢!
你需要使用这个:
QMAKE_CXXFLAGS + = -Wno-enum-compare
例如,如果您收到以-Wenum-compare结尾的警告。
此外,请注意,根据GCC文档,不能抑制一些警告,请查看您无法压制的警告,这样您就不会错误地认为您的标志不正确。
知道标志传递给编译器的最好方法是查看编译器的输出,并确保你的标志在那里,你应该在命令行中看到-Wno-enum-compare ,例如,即使国旗不压制任何东西。 你会惊讶地发现这样的信息是多么的困难,它花了一些时间来挖掘,我最终从编译.pro文件的自动完成功能中找到了它,如果在编辑.pro文件时遇到问题, 按Ctrl +空格键 (或者开始输入一个单词,然后按Shift + Home键 ),就可以得到一个可以在.pro文件中使用的有效东西列表,就像任何其他常用的源文件一样。 它帮助我找到正确的东西( QMAKE_CXXFLAGS ,事实证明,出于某种原因通常不是人们的建议)…噢,这是关于Qt 4.8版本,创建者2.4,所以它可能已经改变,因为这(他们似乎喜欢做很多,我看到新版本已经大幅改变)。
我已经通过海湾合作委员会的警告选项。 -Wenum-compare
有选项-Wenum-compare
是负责警告,但没有-Wno-enum-compare
。 除非明确设置,否则-Wenum-compare
选项很可能由-Wall
设置。 所以我会建议禁用-Wall
你可能有两个选择:
找到你想要删除的警告的名称,然后将它们添加到你的.pro文件中,在前面加一个'no-'。 就像是:
CFLAGS + = -Wno-my-super-warning-I-found
linux-g++ { QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare }
或者任何使用g ++的系统
*-g++ { QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare }