当前位置: 首页 > 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.jsqmd.com/news/37033/

相关文章:

  • 第21天(简单题中等题 二分查找、排序)
  • CSAPP学习笔记(施工中)
  • 当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? - fish666
  • 计算不确定度
  • 会议开了一整天,记录却只有三行?
  • Day17盒子模型中设置外边距时的问题
  • 基于Github Action 配置Java Python Go. Rust Nodejs C++ 实现自动发布功能
  • File文件
  • 2025 年 11 月蔬菜配送厂家推荐排行榜,新鲜生鲜水果,有机食堂食材,生鲜蔬菜配送中心,蔬菜配送平台,新鲜蔬菜配送上门公司推荐
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras构建逻辑回归
  • 2025 年 11 月食堂承包厂家推荐排行榜:学校、工厂、企业、单位、医院、工地、科技园、工业园、产业园、养老院食堂承包公司精选
  • 2025年保洁公司权威推荐榜单:驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁服务优选指南
  • 今天学的是编译型与解释型的运行流程
  • 在线甘特图工具选型指南:5款产品深度对比评测
  • 2025 年 11 月食堂承包厂家推荐排行榜,学校食堂承包,工厂食堂承包,企业单位食堂承包,医院工地科技园食堂承包公司优选
  • 漏洞赏金实战:我是如何轻松获得2500美元奖金的
  • 华为网络设备重启-保存-清楚配置恢复出厂配置命令
  • 2025.11.10总结
  • 2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,PFA 隔膜阀,防腐隔膜阀,高纯隔膜阀,耐酸碱隔膜阀公司推荐
  • 推荐一种异步线程执行过程中更新进度的方法
  • 2025 年 11 月食堂承包厂家推荐排行榜,学校食堂承包,工厂食堂承包,企业单位食堂承包,医院工地科技园食堂承包公司精选
  • 希尔排序快速排序归并排序
  • 2025 年 11 月电源适配器厂家推荐排行榜,12V2A电源适配器,12V电源适配器,24V电源适配器,笔记本电源适配器公司推荐
  • shadcn之表单
  • 2025 年 11 月粘度计厂家推荐排行榜,在线粘度计,旋转粘度计,振动粘度计,实验室旋转粘度计,反应釜在线粘度计公司推荐
  • Numpy - numpy.random.randn()
  • flask: 用Flask-Uploads实现文件上传
  • AI元人文:交织的智慧——应对价值困境的四条路径
  • 光学神经网络
  • 2025 年 11 月疥螨阴虱药剂厂家推荐排行榜,扑灭司林,苯甲酸苄酯,胺氯菊百灭宁,科灭达专业配方高效灭杀方案公司推荐