我想知道在Qt-Creator中是否有可能抑制编译器特定的警告。我的g++-4.5输出如下所示:"warning: enumeral and non-enumeral type in conditional expression"。我想摆脱它,因为它非常烦人。谢谢!(系统信息:Ubuntu 11.04 x64、g++-4.5、QtCreator 2.01、Qt 4.7)
如果您收到以-Wenum-compare结尾的警告,例如。QMAKE_CXXFLAGS += -Wno-enum-compare
linux-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
适用于使用g++编译器的任何系统
*-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
我已经查看了gcc的警告选项。Gcc有一个名为-Wenum-compare
的选项,它负责发出警告,但是没有-Wno-enum-compare
选项。除非显式设置,否则-Wenum-compare
选项很可能由-Wall
设置。因此,我建议禁用-Wall
。
你可能有两个选择:
找到由g++发出的要删除的警告名称,然后在.pro文件中将它们添加到CFLAGS中,并在前面加上“no-”。类似于:
CFLAGS += -Wno-my-super-warning-I-found
对于某些代码:
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wenum-compare")
// Some code than throwns warnings
QT_WARNING_POP