2010-07-26 3 views
2

Мне интересно, возможно ли иметь ужас в gcc/g ++ исключить определенные файлы (те, которые у меня нет для изменения исходного кода), чтобы я мог продолжать использовать werror в свободном состоянии.Werror игнорировать определенные файлы

+1

Если у вас нет исходного кода ... тогда у вас уже должна быть библиотека для ссылки. Или вы имеете в виду заголовочные файлы? – Akusete

+0

Err ... если у вас нет исходного кода, тогда GCC не будет жаловаться! –

+0

Кажется, это был dup из http://stackoverflow.com/questions/3308523/how-to-eliminate-external-lib-third-party-warnings-in-gcc – Dummy00001

ответ

0

Моя единственная мысль - скомпилировать файлы, которые вы можете изменить отдельно с помощью -Werror, а затем связать их с другими файлами объектов/библиотек без -Werror.

+0

А если они только файлы заголовка: - / –

3

Используйте pragma directives с более новой версией gcc (4.2, я думаю), чтобы отключить -Werror для определенных заголовков, прежде чем включать их.

Возможно, вы захотите принять ответы на свои предыдущие вопросы.

0

Миллер уже @ Сэм дал справочную документацию о том, как это сделать ...

Вы можете временно отключить -Werror на некоторых предупреждений с #pragma GCC diagnostics warning "-W<kind>". Например:

#pragma GCC diagnostic push 
# pragma GCC diagnostic warning "-Wreturn-type" 
# pragma GCC diagnostic warning "-Wmissing-braces" 
# include "legacy-crap.h" 
#pragma GCC diagnostic pop 

Следующая gcc напечатает название категории диагностики в скобках в части предупреждения/ошибки:

warning-test.c:11:1: warning: return type defaults to ‘int’ [-Wreturn-type] 

или

warning-test.c:11:1: error: return type defaults to ‘int’ [-Wreturn-type] 

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

Смежные вопросы