Как подавить предупреждения в Qt Creator - PullRequest
8 голосов
/ 30 января 2012

Мне интересно, возможно ли подавить определенные предупреждения компилятора в Qt-Creator.

Мой г ++ - 4,5 отпечатка:

предупреждение: перечислительный и не перечислительный тип в условном выражении

Я бы хотел избавиться от этого, потому что это очень раздражает.

  • Ubuntu 11.04 x64
  • г ++ - 4.5
  • QtCreator 2.01
  • Qt 4,7

Спасибо!

Ответы [ 4 ]

7 голосов
/ 18 октября 2013

Вам нужно использовать это:

QMAKE_CXXFLAGS + = -Wno-enum-сравнить

если вы получаете предупреждение, которое заканчивается -Wenum-сравнением , например.

Также обратите внимание, что некоторые предупреждения не могут быть подавлены согласно документации GCC. взгляните на это для тех, кого вы не можете подавить , так что вам не дают ложное представление о том, что ваши флаги работают неправильно.

Лучший способ узнать, передаются ли флаги компилятору, очевидно, это посмотреть на выходные данные компилятора и убедиться, что ваши флаги есть, вы должны увидеть -Wno-enum-compare в командной строке, например, даже если флаг ничего не подавляет. Вы будете удивлены, насколько трудно будет найти информацию о таких вещах, это заняло некоторое копание, и я в итоге нашел ее в автозаполнении, которое работает при редактировании файлов .pro, если у вас есть проблемы с редактированием ваших файлов .pro нажмите Ctrl + Пробел (или начните вводить слово и нажмите Shift + Home ), чтобы получить список допустимых вещей, которые вы можете использовать в своем .pro-файле, как и любой другой обычный исходный файл. Это помогло мне найти правильную вещь ( QMAKE_CXXFLAGS , как выясняется, обычно не то, что люди советуют, по некоторым причинам) ... О да, и речь идет о Qt версии 4.8, создателе 2.4, так что возможно, изменилось, так как этот пост (кажется, им очень нравится это делать, я видел, что новые версии уже сильно изменились).

2 голосов
/ 30 января 2012

Я просмотрел параметры предупреждений gcc. Gcc имеет опцию -Wenum-compare, которая отвечает за предупреждение, однако нет -Wno-enum-compare. Опция -Wenum-compare, скорее всего, установлена ​​-Wall, если она не установлена ​​явно. Поэтому я бы предложил отключить -Wall

1 голос
/ 16 марта 2016
linux-g++ {
    QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}

или для любой системы, использующей g ++

*-g++ {
    QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra -Wno-enum-compare
}
0 голосов
/ 30 января 2012

У вас, вероятно, есть два варианта:

  1. исправить само предупреждение (приведенное выше выглядит так, как будто вам, вероятно, нужен приведение)
  2. найти имя предупреждения, которое вы хотитеудалить выпущенные g ++, а затем добавить их в вашем .pro-файле в CFLAGS с «нет» впереди.Что-то вроде:

    CFLAGS + = -Wno-my-super-warning-I-found

...