Как отключить предупреждения для системных заголовков в Sun Studio 12 - PullRequest
1 голос
/ 26 января 2011

Мы находимся в процессе исправления нашей кодовой базы путем (среди прочего) исправления всех предупреждений компилятора.

Конечная цель - включить флаг, который преобразует все предупреждения в ошибки. Мы столкнулись с небольшим затруднением с системными и сторонними заголовками. Некоторые системные заголовки заставляют различные компиляторы выдавать предупреждения. Теперь очевидно, что мы не можем модифицировать системные заголовки, чтобы исправить эти предупреждения.

С компилятором intel (и gcc) вы просто используете -isystem вместо -I при создании пути включения, чтобы сообщить компиляторам, что заголовки в этих каталогах являются системными заголовками, и он перестает предупреждать о них. Тогда нужно просто включить флаг -Werror.

Мы также используем Sun Studio 12, флаг -errwarn =% all должен быть эквивалентен -Werror, но я не могу найти способ сказать компилятору игнорировать предупреждения в заголовках системы / третьего лица. Есть флаг -errhdr, но, похоже, он не делает то, что я хочу.

Кто-нибудь знает, как этого добиться с помощью Sun Studio 12?

Ответы [ 3 ]

2 голосов
/ 26 января 2011

Очевидно, что это не совсем то, что вам нужно, но при отсутствии чего-либо лучшего вы можете обернуть оскорбительные включения в блок #pragma error_messagesНапример,

#pragma error_messages (on , tag .. tag)

#include <map>
// etc

#pragma error_messages (default , tag .. tag)

как описано здесь .В настоящее время у меня нет доступа к Solaris, поэтому я не пробовал это.

1 голос
/ 28 августа 2014

Другой вариант - просмотреть тег предупреждения с помощью -errtags , а затем отключить конкретное предупреждение с помощью -erroff .

0 голосов
/ 26 января 2011

К сожалению (насколько я знаю), флаг errhdr - лучшее, что вы можете получить.Будьте рады, что вы используете Sun Studio 12, поскольку он был добавлен только в этом выпуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...