Я ищу инструмент (желательно, плагин Visual Studio), который отобразит все файлы, включенные в данный файл, и покажет все файлы, включенные этими файлами, и т.д.
Как я могу легко увидеть граф C/С++ #include?
Ответ 1
Doxygen с помощью Graphviz, может это сделать. Сначала вам нужно отредактировать файл конфигурации. Это будет нелегко в первый раз, когда вы это сделаете, но после этого не требуется много редактирования.
Ответ 2
Сначала 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 графы, но и кросс-зависимости проектов для общих файлов, влияние на время сборки, подробные свойства в сетках, совершенные.
Ответ 3
Не совсем то, что вы хотите, но компилятор Visual Studio (cl.exe) имеет параметр /showIncludes
, который покажет вам дерево включений при компиляции файла.
Если вам нужна эта информация для одного файла, вы можете щелкнуть правой кнопкой мыши по файлу в обозревателе решений, выбрать "Свойства", а в разделе "Командная строка" просто добавить /showIncludes в "Дополнительные параметры". (Примечание. Я использую VС++ 2005, поэтому для более новых версий он может отличаться).
Результат, который вы получаете, немного... запутанный, но он показывает вам, что входит в комплект и в каком порядке.
Кстати, та же самая особенность в GCC и компиляторе Intel С++ (мои версии как минимум) -H
.
Ответ 4
Если вы используете Visual Studio 2010, вы можете использовать новый Feature Feature Feature из Microsoft, который имеет функцию генерации включить график. Это доступно только через индекс MSDN.
Ответ 5
Вы можете попробовать метод, предложенный в этом ответе:
Существует установка C/С++ → Advanced project "show Includes". Что будет генерировать дерево. Он сопоставляется с коммутатором компилятора /showIncludes
Ответ 6
Не в ваших предпочтениях, но doxygen делает это достаточно хорошо.
Ответ 7
http://www.codeproject.com/KB/applications/includefinder.aspx
Это не плагин VS, но может быть стартером для вашего собственного инструмента. Насколько я мог видеть, он читает только проекты VC6, новые VS имеют формат XML, который легко анализировать. Что вам нужно, это путь по умолчанию, включающий пути, чтобы инструмент мог находить включенные файлы. В качестве альтернативы вы можете предоставить для него окно настроек в графическом интерфейсе как пользовательский ввод.