当前位置: 首页 > news >正文

Doxygen 入门

Doxygen 可以通过解析代码中的特殊注释来生成详细的文档。以下是完整的操作流程:

1. 安装 Doxygen

Windows

bash
# 使用 Chocolatey
choco install doxygen# 或从官网下载安装包
# https://www.doxygen.nl/download.html

macOS

bash
brew install doxygen

Linux

bash
# Ubuntu/Debian
sudo apt-get install doxygen# CentOS/RHEL
sudo yum install doxygen

2. 在代码中添加 Doxygen 注释

C/C++ 示例

cpp
/*** @brief 计算两个数的和* * @param a 第一个加数* @param b 第二个加数* @return int 两个数的和*/
int add(int a, int b) {return a + b;
}/*** @class Calculator* @brief 简单的计算器类*/
class Calculator {
public:/*** @brief 构造函数* @param initial_value 初始值*/Calculator(double initial_value = 0);/*** @brief 乘法运算* @param factor 乘数* @return Calculator& 返回自身的引用,支持链式调用*/Calculator& multiply(double factor);private:double value_;  ///< 当前的计算结果
};

Python 示例

python
class DataProcessor:"""@brief 数据处理类@details 这个类提供了多种数据处理的工具方法,包括数据清洗、转换和分析功能。"""def __init__(self, config_file):"""@brief 构造函数@param config_file 配置文件路径@exception FileNotFoundError 当配置文件不存在时抛出"""self.config = self._load_config(config_file)def process_data(self, data):"""@brief 处理输入数据@param data 要处理的数据,可以是列表或字典@return dict 处理后的数据@warning 输入数据必须包含必要的字段"""# 处理逻辑return processed_data

Java 示例

java
/*** @brief 用户管理类* @author 开发者姓名* @version 1.0*/
public class UserManager {private List<User> users;/*** @brief 根据ID查找用户* @param userId 用户ID* @return User 找到的用户对象,未找到返回null* @see User*/public User findUserById(int userId) {return users.stream().filter(user -> user.getId() == userId).findFirst().orElse(null);}
}

3. 配置 Doxygen

生成配置文件

bash
# 生成默认配置文件 Doxyfile
doxygen -g

常用配置选项

编辑 Doxyfile 文件:

text
# 项目相关配置
PROJECT_NAME           = "我的项目"
PROJECT_BRIEF          = "项目简要描述"
PROJECT_LOGO           = ./logo.png# 输入文件配置
INPUT                  = ./src
RECURSIVE              = YES
FILE_PATTERNS          = *.cpp *.h *.java *.py# 输出格式
GENERATE_HTML          = YES
GENERATE_LATEX         = NO# 提取信息配置
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES# 源码浏览
SOURCE_BROWSER         = YES
INLINE_SOURCES         = YES# 图表生成
HAVE_DOT               = YES
CALL_GRAPH             = YES
CALLER_GRAPH           = YES

4. 生成文档

命令行方式

bash
# 使用配置文件生成文档
doxygen Doxyfile# 或者直接指定配置
doxygen -g myconfig && doxygen myconfig

使用 GUI 工具(Doxywizard)

bash
# 启动 GUI 配置工具
doxywizard

5. 常用 Doxygen 命令

基本命令

text
@brief    简要描述
@details  详细描述
@param    参数说明
@return   返回值说明
@see      参考链接
@note     注意事项
@warning  警告信息
@deprecated 已弃用说明

分组命令

cpp
/*** @defgroup network 网络模块* @brief 处理网络通信的相关功能*//*** @ingroup network* @brief 建立网络连接*/
void connect();/*** @addtogroup network* @{*/
void sendData();
void receiveData();
/** @} */

6. 查看生成的文档

生成完成后,在输出目录(通常是 html/ 文件夹)中打开 index.html 即可浏览完整的 API 文档。

7. 高级功能

包含示例代码

cpp
/*** @brief 使用示例* @code{.cpp}* Calculator calc;* calc.multiply(5).multiply(2);* @endcode*/

数学公式

cpp
/*** @brief 计算圆的面积* * 公式:\f$ A = \pi r^2 \f$* * 或者行内公式:\f$\pi\f$ 是圆周率*/

自定义页面

创建 custom_docs.md

markdown
/*! @mainpage 项目主页面** @section intro_sec 介绍* 这里是项目的详细介绍...** @section install_sec 安装* 安装说明...*/

在配置文件中添加:

text
INPUT = ./src custom_docs.md

这样你就可以生成专业、完整的代码文档了。记得保持注释的及时更新,确保文档与代码同步。

http://www.gsyq.cn/news/45972.html

相关文章:

  • CSAPP学习笔记(施工中)
  • 当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? - fish666
  • 会议开了一整天,记录却只有三行?
  • Day17盒子模型中设置外边距时的问题
  • 2025 年 11 月食堂承包厂家推荐排行榜:学校、工厂、企业、单位、医院、工地、科技园、工业园、产业园、养老院食堂承包公司精选
  • 2025 年 11 月鞋子设计打版与技术培训权威推荐榜:开发设计、版型设计、培训创业班及设计培训学校精选指南
  • 在线甘特图工具选型指南:5款产品深度对比评测
  • 漏洞赏金实战:我是如何轻松获得2500美元奖金的
  • 2025.11.10总结
  • 【CI130x 离在线】C++事件驱动模式编程
  • 2025 年 11 月食堂承包厂家推荐排行榜,学校食堂承包,工厂食堂承包,企业单位食堂承包,医院工地科技园食堂承包公司精选
  • shadcn之表单
  • 光学神经网络
  • 2025 年 11 月疥螨阴虱药剂厂家推荐排行榜,扑灭司林,苯甲酸苄酯,胺氯菊百灭宁,科灭达专业配方高效灭杀方案公司推荐
  • Day17内容溢出overflow属性
  • 谷歌广告生态指南:AdSense/GAM 接入避坑 + 填充监听 + 问题排查
  • 2025 年 11 月流量计厂家推荐排行榜,热式/模拟式/数字式/高压/高温/耐腐蚀/多气体/4-20mA/RS485/分体式/不锈钢/高精度流量计公司推荐
  • 2025 年 11 月聚氨酯厂家推荐排行榜,浇注型聚氨酯,聚氨酯预聚体,聚氨酯胶黏剂,聚氨酯组合料,聚氨酯密封,聚氨酯轮,聚氨酯胶辊,聚氨酯制品公司推荐
  • 2025 年 11 月氢氧化镁厂家推荐排行榜,矿石氢氧化镁,矿石法氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁公司推荐
  • 20232415 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • Day17清除默认样式
  • 2025 年 11 月磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超细磨粉机,高压磨粉机公司推荐
  • 详细介绍:探究微波消解仪如何创新现代实验室的样品前处理流程
  • 爆肝!Oracle RAC 日常运维命令总结
  • 详细介绍:线性代数 几何意义 | 基础、向量、行列式与线性方程组(上篇)
  • 在Zabbix中修改Web页面显示名称
  • 20232406 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 2025 年 11 月危险品运输厂家推荐排行榜,危险品运输车,危险品运输罐,危险品运输物流,危险品运输公司专业实力与安全服务深度解析
  • 对于生成虚tree进行DP——CF1097G Vladislav and a Great Legend
  • 使用napi-rs,通过node调用rust代码