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

Да, играйте с figuresize, как это (прежде чем вы назовете ваш подзаговор):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
169
задан Kara 12 December 2013 в 06:33
поделиться

10 ответов

Если у Вас будет доступ к GCC/G ++, то -M опция произведет список зависимости. Это не делает ни одного дополнительного материала, который другие инструменты делают, но так как это прибывает из компилятора, нет никакого шанса, что это поднимет файлы с "неправильного" места.

142
ответ дан Matt Joiner 23 November 2019 в 20:51
поделиться

Благодаря KeithB. Я искал документы для cl.exe (VS2008) и нашел флаг/showIncludes. От IDE это может быть установлено от страницы свойств любого файла CPP.

Screen shot

91
ответ дан Neysor 23 November 2019 в 20:51
поделиться

Для тяжелого решения для веса необходимо проверить doxygen. Это сканирует через Вашу кодовую базу и придумывает веб-сайт, эффективно, это документирует Ваш код. Одна из многих вещей, которые это показывает, включают деревья.

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

29
ответ дан albert 23 November 2019 в 20:51
поделиться

Я играл вокруг с инструментом, названным cinclude2dot. Было довольно полезно в получении дескриптора на довольно большой кодовой базе, когда я приехал для работы здесь. Я на самом деле думал об интеграции его в нашу ежедневную сборку в конечном счете.

19
ответ дан math 23 November 2019 в 20:51
поделиться

Хорошие новости: Исходный Навигатор Redhat (работает на Windows также). Конечно, переключатели компилятора (упомянул ранее) имеют превосходящий парсинг, и я не уверен, как это обработает MFC, QT и их волшебные ключевые слова.

redhat Source-Navigator

11
ответ дан Neysor 23 November 2019 в 20:51
поделиться
4
ответ дан dwj 23 November 2019 в 20:51
поделиться

Понимают для C++ , должен быть в состоянии помочь Вам: это создает базу данных, к которой можно получить доступ от Perl.

3
ответ дан Xavier Nodet 23 November 2019 в 20:51
поделиться

cscope ( http://cscope.sourceforge.net/ ) делает это в автономном xterm, и также может использоваться в Вашем любимом редакторе - он имеет большой emacs и поддержку vi/vim.

1
ответ дан svec 23 November 2019 в 20:51
поделиться

Основываясь на ответе KeithB , вот синтаксис GNUmake для автоматического 1) создания файлов зависимостей, 2) поддержания их в актуальном состоянии и 3) использования их в вашем make-файле. :

.dep:
    mkdir $@
.dep/%.dep: %.c .dep
    (echo $@ \\; $(CC) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
.dep/%.dep: %.cpp .dep
    (echo $@ \\; $(CXX) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
DEPEND := $(patsubst %.dep,.dep/%.dep,$(OBJ:.o=.dep))
-include $(DEPEND)

(Не забудьте заменить эти отступы на жесткие вкладки.)

5
ответ дан 23 November 2019 в 20:51
поделиться

Во-первых, cinclude2dot.pl - это Perl-скрипт, который анализирует код C / C ++ и создает график зависимостей #include в виде точечного файла для ввод в graphviz.

http://www.flourish.org/cinclude2dot/

Если вы не хотите идти по пути такого рода ручных инструментов, то, на мой взгляд, лучший инструмент, несомненно, лучше всех. как "IncludeManager" от ProFactor.

http://www.profactor.co.uk/includemanager.php

Есть бесплатная пробная версия, и это потрясающе. Это полностью интегрированный плагин для Visual Studio, поэтому двойной щелчок по чему-то здесь приведет вас к тому месту, где это есть.

Всплывающие подсказки дают вам всю необходимую информацию, и они позволяют вам переходить вниз / вверх, удалять целые поддеревья, которые вам не нужны, просматривать представления, отличные от графиков, циклически перемещаться по списку совпадений для того или иного, это замечательно.

Если вы поспешите, вы можете реорганизовать структуру #include больших проектов до того, как закончится пробная версия. Тем не менее, это не стоит много, около 35 долларов за лицензию.

Что касается того, что он делает, он почти идеален. Не только графики #include, но и межпроектные зависимости общих файлов, влияние на время сборки, подробные свойства в сетках, идеально.

12
ответ дан 23 November 2019 в 20:51
поделиться