Как подавить предупреждения GCC от заголовков библиотеки?

Я люблю консоли, особенно с курсивом для комментариев. Небольшие курсивные причудливые завитушки являются настолько милыми: P

119
задан AdSR 8 December 2009 в 13:43
поделиться

5 ответов

Вы можете попробовать включить заголовки библиотек, используя -isystem вместо -I . Это сделает их "системными заголовками", и GCC не будет сообщать о них предупреждения.

121
ответ дан 24 November 2019 в 01:46
поделиться

Для этих предупреждений должна быть причина. Они будут вызваны либо ошибками в вашем коде, который использует библиотеку, либо ошибками в самом коде библиотеки. В первом случае исправьте свой код. Во втором случае либо прекратите использование библиотеки, либо, если это код FOSS, исправьте его.

-7
ответ дан 24 November 2019 в 01:46
поделиться

#pragma - инструкции для компилятора. вы можете установить что-то перед #include и отключить после.

Вы также можете сделать это в командной строке .

Другая страница GCC, посвященная отключению предупреждений .

Я бы выбрал вариант использования # pragma в исходном коде, а затем предоставил звук причина (в качестве комментария), почему вы отключаете предупреждения. Это означало бы рассуждение о файлах заголовков.

GCC подходит к этому, классифицируя типы предупреждений. Вы можете классифицировать их как предупреждения или игнорировать. Связанные ранее статьи покажут вам, какие предупреждения могут быть отключены.

Примечание: вы также можете изменить исходный код, чтобы предотвратить определенные предупреждения, используя атрибуты ; однако это очень сильно связывает вас с GCC.

Примечание 2: GCC также использует интерфейс pop / push , который используется в компиляторе Microsoft - Microsoft отключает предупреждения через этот интерфейс. Я предлагаю вам изучить это дополнительно, поскольку я не знаю, возможно ли это вообще.

8
ответ дан 24 November 2019 в 01:46
поделиться

Вы можете попробовать использовать предварительно скомпилированные заголовки . Предупреждения не исчезнут, но, по крайней мере, не появятся в вашем основном проекте.

4
ответ дан 24 November 2019 в 01:46
поделиться

Я нашел уловку. Если библиотека включает, вместо -Idir используйте -isystem dir в make-файле. Затем GCC обрабатывает повышение и т. Д., Поскольку система включает и игнорирует любые предупреждения от них.

26
ответ дан 24 November 2019 в 01:46
поделиться
Другие вопросы по тегам:

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