Ответ 1
Doxygen с помощью Graphviz, может это сделать. Сначала вам нужно отредактировать файл конфигурации. Это будет нелегко в первый раз, когда вы это сделаете, но после этого не требуется много редактирования.
Я ищу инструмент (желательно, плагин Visual Studio), который отобразит все файлы, включенные в данный файл, и покажет все файлы, включенные этими файлами, и т.д.
Doxygen с помощью Graphviz, может это сделать. Сначала вам нужно отредактировать файл конфигурации. Это будет нелегко в первый раз, когда вы это сделаете, но после этого не требуется много редактирования.
Сначала cinclude2dot.pl является perl script, который анализирует код C/С++ и создает граф зависимости #include в виде точечного файла для ввода в graphviz.
http://www.flourish.org/cinclude2dot/
Если вы не хотите идти по пути такого ручного инструмента, то, безусловно, победителем станет инструмент, известный как "IncludeManager" из ProFactor.
http://www.profactor.co.uk/includemanager.php
Там бесплатная пробная версия, и это потрясающе. Это плагин для Visual Studio, который полностью интегрирован, поэтому двойной щелчок по чему-то здесь приведет вас туда, где он включен.
Подсказки подсказки подсказки дают вам всю информацию, которую вы хотите, и она позволяет вам развернуть/вверх, удалить целые поддеревья, которые вам не нужны, просматривать представления, отличные от графиков, циклически перебирать список совпадений для этого и того, это замечательно.
Если вы быстро это сделаете, вы можете реорганизовать структуру #include больших проектов до завершения пробной версии. Тем не менее, это не очень дорого, около 35 долларов США за лицензию.
Что он делает, он почти идеален. Не только #include графы, но и кросс-зависимости проектов для общих файлов, влияние на время сборки, подробные свойства в сетках, совершенные.
Не совсем то, что вы хотите, но компилятор Visual Studio (cl.exe) имеет параметр /showIncludes
, который покажет вам дерево включений при компиляции файла.
Если вам нужна эта информация для одного файла, вы можете щелкнуть правой кнопкой мыши по файлу в обозревателе решений, выбрать "Свойства", а в разделе "Командная строка" просто добавить /showIncludes в "Дополнительные параметры". (Примечание. Я использую VС++ 2005, поэтому для более новых версий он может отличаться).
Результат, который вы получаете, немного... запутанный, но он показывает вам, что входит в комплект и в каком порядке.
Кстати, та же самая особенность в GCC и компиляторе Intel С++ (мои версии как минимум) -H
.
Если вы используете Visual Studio 2010, вы можете использовать новый Feature Feature Feature из Microsoft, который имеет функцию генерации включить график. Это доступно только через индекс MSDN.
Вы можете попробовать метод, предложенный в этом ответе:
Существует установка C/С++ → Advanced project "show Includes". Что будет генерировать дерево. Он сопоставляется с коммутатором компилятора /showIncludes
Не в ваших предпочтениях, но doxygen делает это достаточно хорошо.
http://www.codeproject.com/KB/applications/includefinder.aspx
Это не плагин VS, но может быть стартером для вашего собственного инструмента. Насколько я мог видеть, он читает только проекты VC6, новые VS имеют формат XML, который легко анализировать. Что вам нужно, это путь по умолчанию, включающий пути, чтобы инструмент мог находить включенные файлы. В качестве альтернативы вы можете предоставить для него окно настроек в графическом интерфейсе как пользовательский ввод.