Как устранить внешние предупреждения lib/третьего лица в GCC [дубликат]

Этот вопрос уже имеет ответ здесь:

В проекте программного обеспечения я продолжаю работать, мы пользуемся определенными сторонними библиотеками, которые, к сожалению, произведите раздражающие gcc предупреждения. Мы стремимся убрать весь код предупреждений и хотеть включить treat-warnings-as-errors (-Werror) флаг в GCC. Существует ли способ сделать их, третья сторона генерировала предупреждения, которые мы не можем зафиксировать, для исчезновения?

24
задан Deduplicator 19 September 2015 в 02:34
поделиться

2 ответа

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

Специфическим решением для GCC будет создание другого заголовочного файла-обёртки, содержащего, по сути, две строки:

#pragma GCC system_header
#include "real_3rd_party_header.h"

И использование этой обёртки вместо оригинального стороннего заголовка.

Проверьте другой ответ SO, в котором подробно описана прагма. По сути, она говорит GCC, что этот (с рекурсивно включенными файлами) является системным заголовком, и никаких предупреждающих сообщений выдаваться не должно.

Иначе я не знаю, как можно отключить предупреждения, исходящие от стороннего кода. Кроме, конечно, грубой силы: в системе сборки настроить файлы для сборки с отключенными предупреждениями.

16
ответ дан 28 November 2019 в 22:25
поделиться

http://www.artima.com/cppsource/codestandards.html

Пример 1. Сторонний файл заголовка. Заголовочный файл библиотеки, который вы не можете изменение может содержать конструкцию, которая вызывает (вероятно, доброкачественные) предупреждения.Затем оберните файл своим версия, которая # включает оригинал заголовок и выборочно отключает шумные предупреждения только для этой области, а затем # включить вашу оболочку на протяжении всей остальной части вашего проекта.

3
ответ дан 28 November 2019 в 22:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: