Как заставить gcc не предупреждать о проблемах в некоторых «внешних заголовках», но включать эти заголовки в качестве зависимостей? - PullRequest
0 голосов
/ 10 апреля 2019

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

[Плохой] обходной путь, который, похоже, используют все, - это заменить параметр пути поиска -I заголовков на -isystem для всех заголовков, которые есть в проекте, но принадлежат "некоторым другим группам" ...Это плохо, потому что, хотя и позволяет избежать потери в предупреждениях от этих «внешних заголовков», они также исключают предупреждения из файла зависимостей, сгенерированного gcc, что может привести к тому, что система сборки не будет знать, что перекомпилировать при обновлении заголовка какого-либо проекта..

Используя gcc / g ++, есть ли способ сделать все следующее сразу:

  • исключить истинные системные заголовки как из сообщений о предупреждениях, так и от включения в генерацию зависимостей;
  • исключить некоторые заголовки проектов из определенных каталогов из предупреждения о сообщениях, но по-прежнему включать их в генерацию зависимостей;
  • для всех остальных заголовков: и предупреждать отчеты, и включать их в генерацию зависимостей;

все во время генерации файла зависимостей и построения объектафайл для данного исходного файла C / C ++ одной командой?

...