Doxygen 使用教学
Doxygen 入门指南:从注释到自动文档
Doxygen 是一款用于生成代码文档的工具,支持 C、C++、Python 等多种语言,尤其适合 C/C++ 项目。本文将介绍如何使用 Doxygen 规范注释并生成 API 文档。
一、安装 Doxygen
1. Windows
- 下载安装包:Doxygen 官网(选择
doxygen-<version>.setup.exe) - 安装时勾选
doxywizard(图形化配置工具,推荐新手使用)
2. Linux
1 | # Ubuntu/Debian |
3. macOS
1 | brew install doxygen graphviz |
二、基本注释规则
Doxygen 通过识别特定格式的注释生成文档,核心是 /** ... */ 风格的注释块,配合标签(@tag)描述代码信息。
1. 函数 / 方法注释
1 | /** |
2. 类 / 结构体注释
1 | /** |
3. 文件头部注释
每个 .h 或 .cpp 文件建议添加头部注释,说明文件功能:
1 | /** |
三、常用标签速查表
| 标签 | 用途 | 示例 |
|---|---|---|
@brief |
简短描述(一句话功能说明) | @brief 计算绝对值 |
@param |
描述函数参数 | @param num 待计算的数字 |
@return |
描述返回值 | @return 非负结果 |
@note |
补充说明(注意事项) | @note 输入不能为nullptr |
@warning |
警告信息(危险操作) | @warning 此函数会修改原始数组 |
@file |
标记文件注释 | @file string_utils.h |
@author |
作者信息 | @author 张三 <zhangsan@example.com> |
@date |
日期 | @date 2024-05-01 |
@see |
关联内容(参考其他函数 / 类) | @see add() |

四、生成文档步骤
方法 1:使用 doxywizard(图形化工具)
- 打开
doxywizard(Windows 可在开始菜单找到,Linux/macOS 终端输入doxywizard) - Step 1: 配置输入输出
Working directory:选择项目根目录Input:添加代码目录(如./src)Output directory:设置文档输出路径(如./docs)
- Step 2: 选择输出格式
- 在
Output标签页勾选HTML(必选)和LaTeX(如需 PDF)
- 在
- Step 3: 生成文档
- 点击
Run doxygen,等待生成完成 - 打开
./docs/html/index.html查看文档
- 点击
方法 2:使用命令行(推荐熟练后使用)
-
在项目根目录创建配置文件
Doxyfile:1
doxygen -g Doxyfile # 生成默认配置
-
编辑
Doxyfile关键配置(可选,默认也可生成文档):1
2
3
4
5PROJECT_NAME = "OL库" # 项目名称
INPUT = ./src # 代码目录
OUTPUT_DIRECTORY = ./docs # 文档输出目录
RECURSIVE = YES # 递归处理子目录
GENERATE_HTML = YES # 生成HTML文档 -
生成文档:
1
doxygen Doxyfile # 执行配置文件
五、高级技巧
-
生成调用关系图
在Doxyfile中开启:1
2
3HAVE_DOT = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES需提前安装
graphviz(见步骤一)。 -
忽略不需要的代码
用/// @cond和/// @endcond包裹无需生成文档的代码:1
2
3
4/// @cond
// 内部辅助函数,不对外暴露
static void helper() {}
/// @endcond -
集成到 CMake 构建流程
在CMakeLists.txt中添加:1
2
3
4
5
6
7
8find_package(Doxygen)
if(DOXYGEN_FOUND)
add_custom_target(docs
COMMAND doxygen Doxyfile
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "生成API文档"
)
endif()之后可通过
make docs(Linux)或cmake --build . --target docs生成文档。
六、常见问题
- 注释不生效?
确保注释块以/**开头(不是/*或//),且标签拼写正确(区分大小写)。 - 中文乱码?
在Doxyfile中设置DOXYFILE_ENCODING = UTF-8和OUTPUT_LANGUAGE = Chinese。 - 文档缺少函数?
检查函数是否在.h头文件中声明(Doxygen 通常优先解析头文件)。