Doxygen是C++主流文档工具,通过///或/**/注释提取API文档;需正确注释位置、配置Doxyfile、支持模板/重载解析,并集成到CMake/CI流程中实现自动化。
Doxygen 是 C++ 项目最主流的文档生成工具,它能从源码注释中自动提取结构化文档(HTML、LaTeX、Markdown 等格式),关键在于写对注释格式,再配好配置文件。
Doxygen 主要识别以 /** 或 /// 开头的注释块。普通 // 或 /* */ 不参与文档生成。
/** ... */ 或 /// 描述整体功能,支持 @brief、@details 分段@param 标参数,@return 写返回值,@throw 说明异常/// 注释即可,如 /// 最大连接数
@see 引用其他符号,@note 加备注,@warning 标警告,支持简单 Markdown(如 **粗体**)不用手写全部配置,用交互式命令初始化:
doxygen -g Doxyfile —— 生成默认配置文件Doxyfile,重点改几项:PROJECT_NAME = "MyCppLib"INPUT = ./src ./include(指定含注释的源码路径)RECURSIVE = YES(递归扫描子目录)GENERATE_HTML = YES(生成 HTML 文档)GENERATE_LATEX = NO(不需要 PDF 可关掉)doxygen Doxyfile,几秒后会在 html/ 目录生成完整文档Doxygen 对模板、重载、命名空间等支持良好,但需注意细节:
@fn 手动标记函数名(当声明和实现分离时,避免解析错位)EXTRACT_ALL = YES 可强制文档化所有符号(包括未注释的),适合初期梳理接口ENABLE_PR
EPROCESSING = YES 和 MACRO_EXPANSION = YES 支持宏定义中的文档提取(如 MY_API void func();)避免文档过期,把 Doxygen 当成构建环节的一部分:
find_package(Doxygen),用 add_custom_target(doc ...) 定义 make doc 命令/// 自动补全注释骨架doxygen -w html header.html footer.html stylesheet.css 自定义页面样式,保持品牌一致基本上就这些。写清楚注释 + 一次配置 + 加入流程,就能让 C++ 项目自带可搜索、带跳转、跨平台的 API 文档。不复杂但容易忽略的是:注释位置必须紧贴声明,且不能混用风格 —— 统一用 /// 或 /** */ 效果最稳。