Reputation: 8704
I'm wondering if it is possible to suppress compiler specific warnings in Qt-Creator.
My g++-4.5 prints:
warning: enumeral and non-enumeral type in conditional expression
I would like to get rid of it, because it's very annoying.
Thank you!
Upvotes: 8
Views: 17848
Reputation: 480
For some piece of code:
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wenum-compare")
// Some code than throwns warnings
QT_WARNING_POP
Upvotes: 0
Reputation: 8758
linux-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
or for any system using g++
*-g++ {
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
Upvotes: 2
Reputation: 2237
You need to use this:
QMAKE_CXXFLAGS += -Wno-enum-compare
if you get a warning that ends in -Wenum-compare, for example.
Also, note that some warnings cannot be suppressed as per the GCC documentation take a look at this for ones that you can't suppress, that way you are not given the false idea that your flags aren't working right.
The best way to know if the flags are being passed to the compiler, obviously, is to look at the compiler output, and make sure your flags are there, you should see -Wno-enum-compare in the command line, for example, even if the flag does not suppress anything. You'd be surprised how hard it can be to find information about stuff like this, it took some digging and I ended up finding it from the auto-complete that works when editing .pro files, if you have problems editing your .pro files, hit Ctrl+Space (or start typing a word and hit Shift+Home), to get a list of valid things you can use in your .pro file just like any other usual source file. It helped me find the right thing (QMAKE_CXXFLAGS, as it turns out, is usually not what people suggest, for some reason)... Oh yeah and this is about Qt version 4.8, creator 2.4, so it may have changed, since this post (they seem to like to do that a lot, i saw the newer versions already have changed drastically).
Upvotes: 8
Reputation: 2004
I have looked through gcc warning options. Gcc has option -Wenum-compare
which is responsible for the warning, however there is no -Wno-enum-compare
. The -Wenum-compare
option is most likely set by -Wall
unless it is explicitly set. So I would suggest to disable -Wall
Upvotes: 2
Reputation: 22262
You probably have two choices:
find the name of the warnings you want to remove issued by g++ and then add them in your .pro file to the CFLAGS with a 'no-' in front. Something like:
CFLAGS += -Wno-my-super-warning-I-found
Upvotes: 0