@ Сэм Миллер уже дал справочную документацию о том, как это сделать ...
Вы можете временно отключить -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
), но я думаю, что это также хорошо, чтобы быть явным здесь.