Отключить предупреждения для определенных включенных файлов

Я использую OpenNI в OS X, и по какой-то причине его файлы .h выдают множество предупреждений повсюду, что раздражает.

Есть ли способ отключить все предупреждения для включаемых файлов OpenNI?


person houbysoft    schedule 29.06.2012    source источник
comment
Это хорошая ссылка: gcc.gnu.org/onlinedocs/gcc/Diagnostic- Прагмы.html   -  person chris    schedule 30.06.2012
comment
@chris: если это вообще возможно, было бы здорово найти решение, которое не требовало бы от меня изменения самих заголовков, поскольку у меня не всегда будет доступ для записи...   -  person houbysoft    schedule 30.06.2012
comment
Вероятно, вы могли бы использовать этот ответ вокруг директив включения.   -  person chris    schedule 30.06.2012
comment
Напишите свой собственный заголовок, который подталкивает диагностическое состояние, устанавливает его на все, что вы хотите, включает сторонние или системные заголовки, а затем возвращает диагностическое состояние к тому, что было.   -  person James McNellis    schedule 30.06.2012
comment
Вы можете отправить вывод компилятора через фильтр...   -  person Beta    schedule 30.06.2012
comment
Не думаешь ли ты, что тебе следует выяснить, откуда берутся предупреждения?   -  person stark    schedule 30.06.2012
comment
@stark: я знаю, откуда они берутся, как я сказал в вопросе, это из OpenNI, сторонней библиотеки.   -  person houbysoft    schedule 30.06.2012
comment
@JamesMcNellis: это все еще немного агрессивно, так как требует от меня изменения кода. Первоначально я хотел сделать это, используя только переключатели командной строки, и теперь я нашел решение, -isystem, опубликованное ниже.   -  person houbysoft    schedule 01.07.2012


Ответы (1)


Я обнаружил, что могу указать включаемые каталоги для OpenNI, используя переключатель -isystem вместо -I.

-isystem заставляет gcc рассматривать включаемые каталоги как системные каталоги, и поэтому он не будет генерировать для них никаких предупреждений.

person houbysoft    schedule 30.06.2012