Отключить -Все предупреждения компилятора в проекте 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

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

10

Решение

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

CONFIG += warn_off

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

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

QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_ON

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

QMAKE_CFLAGS_WARN_ON -= -Wall
QMAKE_CXXFLAGS_WARN_ON -= -Wall

warn_off делает именно это.

23

Другие решения

Как отметил в комментарии «peppe», путь Qt’ish таков в соответствии с документацией ниже: CONFIG += warn_off/on

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

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

Документацию CONFIG можно найти в Вот.

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

8

По вопросам рекламы [email protected]