Почти невозможно попытаться увеличить уровень предупреждения или использовать -Werror при работе в большом проекте, где многие группы разрабатывают меньшие фрагменты и поддерживают большой объем устаревшего кода: всегда есть слишком много предупреждений, приходящих от некоторых заголовков, которыепринадлежат к некоторым другим группам, которые делают все это непригодным для использования.
[Плохой] обходной путь, который, похоже, используют все, - это заменить параметр пути поиска -I заголовков на -isystem для всех заголовков, которые есть в проекте, но принадлежат "некоторым другим группам" ...Это плохо, потому что, хотя и позволяет избежать потери в предупреждениях от этих «внешних заголовков», они также исключают предупреждения из файла зависимостей, сгенерированного gcc, что может привести к тому, что система сборки не будет знать, что перекомпилировать при обновлении заголовка какого-либо проекта..
Используя gcc / g ++, есть ли способ сделать все следующее сразу:
- исключить истинные системные заголовки как из сообщений о предупреждениях, так и от включения в генерацию зависимостей;
- исключить некоторые заголовки проектов из определенных каталогов из предупреждения о сообщениях, но по-прежнему включать их в генерацию зависимостей;
- для всех остальных заголовков: и предупреждать отчеты, и включать их в генерацию зависимостей;
все во время генерации файла зависимостей и построения объектафайл для данного исходного файла C / C ++ одной командой?