Как найти повторяющиеся заголовки в большом решении в MSVC ++ 2005 или 2008? - PullRequest
3 голосов
/ 04 января 2009

В Visual Studio (C ++) есть ли способ легко найти дублирующиеся заголовки, которые определены в файлах .cpp?

Я также пытаюсь найти способы обнаружить эту ситуацию:

  • A включает в себя B включает C
  • A включает C
  • => A не нужно включать C

Ответы [ 3 ]

5 голосов
/ 04 января 2009

Если вы хотите обнаружить эту ситуацию, вы можете добавить этот макрос в начало каждого файла. Замените A на имя файла

#if A_H
#error "Duplicate include"
#else
#define A_H
#endif
4 голосов
/ 04 января 2009

Как правило, вы помечаете их один раз #pragma или эквивалентным макросом и перестаете заботиться об этом.

Если вы используете компилятор MS, вы можете поместить сообщение #pragma (IIRC, вместо этого может быть предупреждение #pragma или ошибка #pragma) с именем файла заголовка в самом верху каждого файла заголовка и выходные данные вашей сборки покажут список всех включенных в каждый скомпилированный файл.

Это лучше всего подойдет для ваших заголовочных файлов, так как системные не будут включены.

Если вы хотите увидеть все включенные заголовки, отредактируйте параметры компиляции, добавив / P (предварительная обработка в файл) , который не будет компилировать ваш код, но вместо этого перенаправит препроцессор в файл , затем вы можете просмотреть его, чтобы увидеть операторы #include. Помните, что эти файлы будут большими.

0 голосов
/ 04 января 2009

PC-Lint (и, возможно, другие инструменты lint) могут указывать на неиспользуемые файлы включения.

...