Я искал материал, который описывает, как сгенерировать простые диаграммы классов с помощью doxygen, но не нашел. Кто-нибудь может помочь?
Мне нужно создать диаграммы, как показано ниже, из набора файлов C ++.
Если есть более эффективные инструменты для облегчения этой задачи, дайте мне знать.
Ответы:
Doxygen создает диаграммы наследования, но я не думаю, что он создаст целую иерархию классов. Это позволяет вам использовать инструмент GraphViz. Если вы используете инструмент внешнего интерфейса Doxygen GUI, вы найдете соответствующие параметры в
Step2: -> Wizard tab -> Diagrams
. Параметры отношения DOT находятся на вкладке «Эксперт».источник
Цитата из этого поста (написана самим автором doxygen):
run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again
источник
Хм, кажется, это немного старый вопрос, но поскольку я возился с конфигурацией Doxygen последние несколько дней, а моя голова все еще полна текущей информации, давайте попробуем ее -
Я думаю, что в предыдущих ответах это почти есть:
Недостающий вариант - добавить
COLLABORATION_GRAPH = YES
в Doxyfile. Я предполагаю, что вы можете сделать то же самое где-нибудь в графическом интерфейсе doxywizard (я не использую doxywizard).Итак, в качестве более полного примера, я обычно использую типичные параметры «Doxyfile», связанные с выводом UML:
EXTRACT_ALL = YES CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 50 TEMPLATE_RELATIONS = YES DOT_GRAPH_MAX_NODES = 100 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES
Эти настройки будут генерировать диаграммы "наследования" (
CLASS_GRAPH=YES
) и "сотрудничества" (COLLABORATION_GRAPH=YES
).В зависимости от вашей цели для «развертывания» вывода doxygen, настройка
DOT_IMAGE_FORMAT = svg
также может быть полезной. При выводе svg диаграммы становятся «масштабируемыми» вместо фиксированного разрешения форматов растровых изображений, таких как .png. По-видимому, при просмотре вывода в браузерах, отличных от IE, также естьINTERACTIVE_SVG = YES
возможность «интерактивного масштабирования и панорамирования» сгенерированных диаграмм svg. Я пробовал это некоторое время назад, и вывод svg был очень визуально привлекательным, но в то время поддержка svg браузером все еще была немного непоследовательной, поэтому, надеюсь, эта ситуация, возможно, улучшилась в последнее время.Как уже упоминалось в других комментариях, некоторые из этих настроек (
DOT_GRAPH_MAX_NODES
в частности) потенциально влияют на производительность, поэтому YMMV.Я склонен ненавидеть ответы в стиле "RTFM", поэтому извиняюсь за это предложение, но в этом случае документация Doxygen действительно ваш друг, поэтому ознакомьтесь с документами Doxygen по вышеупомянутым настройкам - в прошлый раз, когда я смотрел, вы можете найти подробности на http://www.doxygen.nl/manual/config.html .
источник
RECURSIVE
на ДАEnterprise Architect построит диаграмму UML из импортированного исходного кода.
источник
Я думаю, вам нужно будет отредактировать файл doxys и установить для GENERATE_UML (что-то в этом роде) значение true. И вам необходимо установить dot / graphviz.
источник
2 ответа, получивших наибольшее количество голосов, верны. На сегодняшний день единственное, что мне нужно было изменить (из настроек по умолчанию), - это включить генерацию с использованием точки вместо встроенного генератора.
Некоторые важные примечания:
html/inherits.html
или (из навигации по сайту) classes => classierarchy => «Перейти к текстовой иерархии классов».T
.foo
наследуется от,T
аT
параметр типа шаблона имеет значение по умолчанию, будет принято такое значение по умолчанию. Если есть тип,bar
который наследуется отfoo<U>
местаU
, отличного от значения по умолчанию,bar
будет иметьfoo<U>
родительский элемент .foo<>
иbar<U>
не будет иметь общего родителя.variant
Будет отображаться любой экземпляр для наследованияvariant<Ts...>
.<...>
их имени будет строка, представляющая параметры типа и не-типа, для которых не было значений по умолчанию.источник