Много предупреждений при применении педантичных ключей GCC к проекту в Qt

вступление

Некоторое время назад я обнаружил, что педантичные ключи GCC полезны и могут посоветовать мне написать более понятный код.
Когда я кодирую простое консольное приложение C ++ и компилирую его с параметрами:

-Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
-Wconversion -Winit-self -Wunreachable-code

(вот полностью документированная информация обо всех них: Варианты запроса или подавления предупреждений, Параметры управления диалектом C ++)


проблема

Теперь я использую Qt 4.8.4 с компилятором MinGW для сборки приложений.
Проблема в том, что когда я добавляю в свой .pro-файл следующих строк:

QMAKE_CXXFLAGS += -Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
QMAKE_CXXFLAGS += -Wconversion -Winit-self

Я получил много предупреждений о том, что делает из источников Qt, но не из моих источников.


пример

Простой Qt GUI проект с параметрами, написанными выше в .pro-file выдает 517 предупреждений, таких как:

D: \ Qt \ 4.8.4 \ src \ corelib \ global \ qglobal.h: 981: предупреждение: базовый класс ‘struct QIntegerForSize<4> ‘имеет не виртуальный деструктор [-Weffc ++]

D: \ Qt \ 4.8.4 \ src \ corelib \ tools \ qpoint.h: 174: предупреждение: преобразование в ‘float’ из ‘int’ может изменить его значение [-Wconversion]

И так далее.


Вопрос

Как избежать применения педантичных параметров к источникам Qt и использовать эти параметры только в моем коде?

1

Решение

Если вы пометите их как системные заголовки, используя GCC -isystem флаг, вы не увидите предупреждений. (Смотрите также http://gcc.gnu.org/onlinedocs/cpp/System-Headers.html).

4

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector