Просмотр включаемых зависимостей - PullRequest
3 голосов
/ 09 января 2009

Кто-нибудь знает инструмент, который будет анализировать кодовую базу C ++ и отображать графическое представление, какие файлы включают в себя, какие заголовочные файлы и подсветка включают в себя? Я использовал Understand C ++, но это дорого и очень быстро стало громоздко на большой (и плохо инкапсулированной) базе кода.

Ответы [ 2 ]

3 голосов
/ 09 января 2009

Всегда есть опция "- H" для gcc / g ++ ...

Например:% г ++ -H foo.C

'-H'
     Print the name of each header file used, in addition to other
     normal activities.  Each name is indented to show how deep in the
     '#include' stack it is.  Precompiled header files are also
     printed, even if they are found to be invalid; an invalid
     precompiled header file is printed with '...x' and a valid one
     with '...!' .

Тогда:

  • 'sed' или 'awk', чтобы удалить ведущий '...'.
  • 'сортировать, чтобы сделать одинаковые имена смежными.
  • 'uniq -c' для подсчета имен.
  • 'grep -v' для удаления синглетонов.

Как в:

%  g++ -H  foo.C |& awk '{print $2}' | sort | uniq -c | grep -v '      1 '

Или это слишком linux'y / unix'y для вас?

(Под окнами всегда есть cygwin.)

1 голос
/ 09 января 2009

попробуйте

Инструмент для отслеживания #include зависимостей

Это также звучит как очень простое упражнение - написать свое собственное. Добавление «избыточного» определения включения может быть более сложным. Нужно было бы разобрать и следовать ifdefs и тому подобное. Но просто сделать дерево зависимостей довольно просто.

...