Отключить предупреждения -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.