要使用 Doxygen 生成类图,核心是安装 Doxygen 与 Graphviz 工具,并进行正确的配置。以下是基于多个技术博客和问答总结出的详细步骤与关键配置。
一、 准备工作:安装必要工具
首先,你需要在你的操作系统上安装 Doxygen 和 Graphviz。Graphviz 的 dot 工具是 Doxygen 生成高质量UML图所依赖的。
- Linux (Ubuntu/Debian):可以使用包管理器快速安装。
sudo apt install graphviz doxygen - 其他系统:可以从 Doxygen 官网和 Graphviz 官网下载安装包,或者通过其他包管理器(如 macOS 的 Homebrew)安装。安装后,请确保
dot命令可在系统路径中被访问。
二、 生成与配置 Doxygen 文件
在你的 C++ 项目根目录下,执行以下命令生成默认配置文件:
doxygen -g 这会生成一个名为 Doxyfile 的配置文件。你需要编辑此文件,启用一系列关键选项以生成类图。
以下是必须或推荐启用的核心配置项及其作用:
| 配置项 | 建议值 | 作用说明 |
|---|---|---|
EXTRACT_ALL | YES | 提取所有实体(包括未注释的),确保生成完整的类图。 |
HAVE_DOT | YES | 启用 Graphviz dot 工具,这是生成所有图表的基础。 |
UML_LOOK | YES | 使生成的类图具有标准的 UML 风格外观,更专业。 |
CLASS_DIAGRAMS | YES | 为有基类或派生类的类生成类图。 |
CLASS_GRAPH | YES | 生成类的继承关系图(Inheritance Diagram)。 |
COLLABORATION_GRAPH | YES | 生成类的协作关系图(Collaboration Diagram),展示类之间的使用关系。 |
RECURSIVE | YES | 递归处理子目录,扫描整个项目。 |
三、 高级与优化配置(可选)
为了获得更好效果或控制输出,你还可以调整以下选项:
控制图表细节与规模:
UML_LIMIT_NUM_FIELDS:限制每个类节点中显示的字段和方法数量,防止图表过大(默认10)。DOT_UML_DETAILS:设置为YES会在UML图中显示成员的类型和参数,NO则只显示名称。DOT_GRAPH_MAX_NODES和MAX_DOT_GRAPH_DEPTH:控制图的最大节点数和深度,对于大型项目可避免生成过于庞大的图,影响性能与可读性。
提升输出质量:
DOT_IMAGE_FORMAT:设置为svg可以生成可缩放矢量图,比默认的png位图更清晰。INTERACTIVE_SVG:设置为YES可在支持SVG的浏览器中实现图表的交互式缩放与平移。
四、 生成文档与查看类图
配置完成后,在项目根目录运行命令执行生成过程:
doxygen Doxygen 会解析你的源代码,并在当前目录下生成 html/ 和 latex/ 两个输出目录。打开 html/index.html,通过导航即可查看生成的类图。类图通常嵌入在各个类的文档页面中。
总结与建议
Doxygen + Graphviz 是生成C++项目类图最常用且成本低廉的方案。其成功的关键在于正确配置 HAVE_DOT=YES 和 UML_LOOK=YES 等核心选项。对于复杂项目,合理使用 DOT_GRAPH_MAX_NODES 等限制性参数可以有效平衡图表的完整性与可读性。
提供一份生成类图的Doxyfile 的配置文件

ima
引用 6 篇资料作为参考
根据您的需求,我为您整理了一份专门用于生成高质量类图的Doxygen配置文件(Doxyfile)模板。该模板综合了多个来源的最佳实践,并针对类图生成进行了优化配置。
一、核心配置:启用类图生成功能
要生成类图,必须正确配置以下关键选项。这些设置是Doxygen与Graphviz协同工作的基础。
# 项目基本信息
PROJECT_NAME = "My Project"
PROJECT_BRIEF = "项目简要描述"
PROJECT_NUMBER = 1.0
OUTPUT_DIRECTORY = ./docs
CREATE_SUBDIRS = YES
# 输入文件设置
INPUT = .
FILE_PATTERNS = *.cpp *.h *.hpp *.cxx *.hxx
RECURSIVE = YES
# 文档提取设置
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
HIDE_UNDOC_RELATIONS = NO 二、类图生成专用配置
以下是专门针对UML类图生成的配置部分,这些设置将确保生成完整的继承和协作关系图。
# ============================================
# 类图与图表生成配置
# ============================================
# 启用Graphviz支持(必需)
HAVE_DOT = YES
# 类图相关设置
CLASS_DIAGRAMS = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
# UML风格设置
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 50
DOT_UML_DETAILS = YES
# 图表规模控制
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_TRANSPARENT = YES 三、输出格式与优化配置
为了获得更好的文档体验,建议配置以下输出选项。
# 输出格式设置
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = ALL
HTML_DYNAMIC_SECTIONS = YES
# 源代码浏览
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
# 搜索功能
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
# 编码设置
DOXYFILE_ENCODING = UTF-8
OUTPUT_LANGUAGE = Chinese 四、Graphviz路径配置(Windows系统特别注意)
如果您在Windows系统上使用,需要正确配置Graphviz的安装路径。
# Windows系统需要设置Graphviz路径
# DOT_PATH = "C:/Program Files/Graphviz/bin"
# 注意:Linux/macOS系统通常不需要此设置 五、使用说明与注意事项
1. 安装依赖
在使用此配置前,请确保已安装以下软件:
- Doxygen:文档生成工具
- Graphviz:图表生成引擎(包含
dot工具)
安装命令示例(Ubuntu):
sudo apt install doxygen graphviz 2. 配置文件生成与使用
# 生成默认配置文件
doxygen -g
# 编辑配置文件(将上述配置复制到Doxyfile中)
vim Doxyfile
# 生成文档
doxygen Doxyfile 3. 关键配置项说明
HAVE_DOT = YES:启用Graphviz支持,这是生成所有图表的前提条件UML_LOOK = YES:使生成的类图具有标准的UML风格外观CLASS_GRAPH和COLLABORATION_GRAPH:分别控制继承图和协作图的生成DOT_IMAGE_FORMAT = svg:生成矢量图,支持无损缩放UML_LIMIT_NUM_FIELDS:控制每个类节点中显示的字段数量,防止图表过大
4. 性能优化建议
对于大型项目,您可能需要调整以下参数以避免性能问题:
- 适当降低
DOT_GRAPH_MAX_NODES的值 - 设置
MAX_DOT_GRAPH_DEPTH限制图表深度 - 调整
UML_LIMIT_NUM_FIELDS控制类节点的复杂度
六、完整配置文件示例
您可以将以下配置保存为Doxyfile,然后根据您的项目需求进行微调:
# Doxyfile 1.9.8 - 类图生成专用配置
# 项目设置
PROJECT_NAME = "My Project"
PROJECT_BRIEF = "使用Doxygen生成类图示例"
PROJECT_NUMBER = 1.0
OUTPUT_DIRECTORY = ./docs
CREATE_SUBDIRS = YES
# 输入设置
INPUT = .
FILE_PATTERNS = *.cpp *.h *.hpp *.cxx *.hxx *.cc *.hh
RECURSIVE = YES
EXCLUDE_PATTERNS = */test/* */build/* */cmake-build-*/*
# 提取设置
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
HIDE_UNDOC_RELATIONS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_IN_BODY_DOCS = NO
# 图表生成(核心配置)
HAVE_DOT = YES
CLASS_DIAGRAMS = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 50
DOT_UML_DETAILS = YES
# 图表优化
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = YES
# 输出格式
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = ALL
HTML_DYNAMIC_SECTIONS = YES
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
# 搜索与引用
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
REFERENCES_LINK_SOURCE = YES
# 编码与语言
DOXYFILE_ENCODING = UTF-8
OUTPUT_LANGUAGE = Chinese 七、验证与调试
生成文档后,打开./docs/html/index.html查看结果。如果类图没有正确生成,请检查:
- Graphviz是否正确安装:在命令行中运行
dot -V验证 - 路径配置:Windows用户需要正确设置
DOT_PATH - 源代码注释:确保类定义有适当的Doxygen注释
- 配置项冲突:某些配置项可能有依赖关系,请仔细阅读Doxygen手册
这份配置文件模板综合了多个来源的最佳实践,特别针对类图生成进行了优化。您可以根据具体项目需求调整参数值,如项目名称、输入目录、图表规模限制等。使用此配置,您将能够生成专业、清晰的UML类图文档。