Отключить предупреждения -Wall компилятора в проекте Qt?

Я компилирую стороннюю библиотеку и не хочу исправлять предупреждения, присутствующие в библиотеке, но я не хочу, чтобы они загрязняли панель "Проблемы" в Qt Creator.

Я пробовал следовать рекомендациям здесь, но нет флага компилятора для отключения -Wall после его включения, например, с помощью -Wno-enum-compare.

После прочтения этого я попытался удалить флаг так:

CFLAGS -= -Wall

Но это тоже не сработало. Поэтому я попробовал этот совет:

QMAKE_CXXFLAGS_WARN_OFF -= -Wall

Все еще ничего.

Итак, я посмотрел в сгенерированном Makefile и нашел это:

CFLAGS        = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS      = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES)

Поэтому я попытался удалить флаг из этих двух переменных:

CFLAGS -= -Wall
CXXFLAGS -= -Wall

По-прежнему ничего. Как вы должны удалить этот флаг компилятора?!

Ответ 1

Самое простое решение:

CONFIG += warn_off

Спасибо peppe в комментариях.

Альтернативное решение

Следуя подсказке .

Флаг -Wall вставляется в Makefile этими двумя переменными:

QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_ON

Итак, чтобы удалить -Wall, вам нужно удалить его из обеих этих переменных.

QMAKE_CFLAGS_WARN_ON -= -Wall
QMAKE_CXXFLAGS_WARN_ON -= -Wall

связанный документация, откровенно говоря, скорее не хватает.

Ответ 2

Как указано в комментарии "peppe", путь Qt'ish заключается в следующем: CONFIG += warn_off/on

warn_on: компилятор должен выводить как можно больше предупреждений. Это игнорируется, если указано warning_off.

warn_off: компилятор должен выводить как можно меньше предупреждений.

Документацию CONFIG можно найти в здесь.

Переменные QMAKE_CXXFLAGS_WARN_OFF/ON не нужно явно указывать, поскольку они обрабатываются qmake.