Doxygen 入门

news/2025/11/11 0:27:12/文章来源:https://www.cnblogs.com/FBsharl/p/19208630

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.mzph.cn/news/961877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第21天(简单题中等题 二分查找、排序)

打卡第二十一天 3道简单题+1道中等题题目:两个数组的交集 给定两个数组nums1和nums2,返回它们的交集.输出结果中的每个元素一定是唯一的。可以不考虑输出结果的顺序。 思路: 排序+双指针代码: class Solution { publi…

CSAPP学习笔记(施工中)

CSAPP 信息的处理和表示 数字的存储 内存被划分为不同大小的字块,32位CPU->4字节,64位CPU->8字节 对字长\(w\)的机器而言,虚拟地址范围为\(0~2^w-1\),即有\(2^w\)个字节 64位架构地址空间限制为48位虚拟地址…

当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? - fish666

就是当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? 首先,就是物理机ping一下虚拟机,看看能不能ping通,,虚拟机ping一下物理机(192.168.236.1)他是1,看看能不能ping通。 如果不能ping通的话,表明物理机…

计算不确定度

假如有数据,13.99 15.07 13.98 14.12 14.69 15.31 14.82 15.01 14.71,要计算其不确定度u A=[13.99 15.07 13.98 14.12 14.69 15.31 14.82 15.01 14.71]; col=size(A,2); s=zeros(1,col); B=A-mean(A); C=B.*B; u=sqr…

会议开了一整天,记录却只有三行?

你知道67%的会议没有有效纪要吗?本文分享一个专业的会议纪要AI指令,能将混乱的会议内容快速转化为结构化、可追踪的专业文档。完整引用原始指令,支持DeepSeek、通义千问等国产AI工具,30分钟生成专业纪要,让每次会…

Day17盒子模型中设置外边距时的问题

外边距问题1之合并现象<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

基于Github Action 配置Java Python Go. Rust Nodejs C++ 实现自动发布功能

需求:基于Github Action 配置Java Python Go. Rust Nodejs C++ 实现自动发布功能。 Java Python Go Rust C++ NodeJshttp://www.cnblogs.com/Jame-mei

File文件

1.读取文件内容读取方法 底层操作(核心) 上层处理(对字节的后续操作) 适用场景read 读取字节到 &mut [u8] 数组 直接使用字节(不做任何转换) 二进制文件分块读、大文件read_to_end 读取所有字节到Vec<u8&…

2025 年 11 月蔬菜配送厂家推荐排行榜,新鲜生鲜水果,有机食堂食材,生鲜蔬菜配送中心,蔬菜配送平台,新鲜蔬菜配送上门公司推荐

2025年11月蔬菜配送行业权威推荐榜单:专业采购决策指南 一、行业背景与发展趋势 随着现代生活节奏的加速和食品安全意识的提升,蔬菜配送行业正经历着前所未有的变革与发展。作为连接农业生产与消费终端的重要纽带,蔬…

TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras构建逻辑回归

TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras构建逻辑回归pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

2025 年 11 月食堂承包厂家推荐排行榜:学校、工厂、企业、单位、医院、工地、科技园、工业园、产业园、养老院食堂承包公司精选

2025 年 11 月食堂承包厂家推荐排行榜:学校、工厂、企业、单位、医院、工地、科技园、工业园、产业园、养老院食堂承包公司精选 行业背景与发展趋势 随着企事业单位后勤服务社会化改革的深入推进,食堂承包行业已发展…

2025 年 11 月鞋子设计打版与技术培训权威推荐榜:开发设计、版型设计、培训创业班及设计培训学校精选指南

2025 年 11 月鞋子设计打版与技术培训权威推荐榜:开发设计、版型设计、培训创业班及设计培训学校精选指南 随着全球鞋业市场的持续发展,鞋子设计开发与技术创新已成为行业竞争的核心要素。从传统制造向智能化、个性化…

2025年保洁公司权威推荐榜单:驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁服务优选指南

2025年保洁公司权威推荐榜单:驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁服务优选指南 行业背景与发展趋势 随着城市化进程加速和现代服务业蓬勃发展,专业保洁服务已成为各…

今天学的是编译型与解释型的运行流程

Java的运行机制编译型:源代码-->编译器-->字节码(机器码)-->操作系统执行 解释型:源代码-->解释器-->(机器码)-->操作系统执行注意:Java属于混合性,操作流程如图运行机制![截图](D:\博客\屏…

在线甘特图工具选型指南:5款产品深度对比评测

本文对市面上主流的5款甘特图产品进行了深度评测,重点关注功能和界面易用性。评测发现,iodraw界面简洁,支持主题切换和任务关联,但自定义列和任务移动受限;星甘StarGantt作为新晋开源产品,功能全面,支持自定义列…

2025 年 11 月食堂承包厂家推荐排行榜,学校食堂承包,工厂食堂承包,企业单位食堂承包,医院工地科技园食堂承包公司优选

2025年食堂承包行业深度解析与权威推荐榜单 行业背景与发展趋势 随着企事业单位后勤服务社会化改革的深入推进,食堂承包行业迎来了前所未有的发展机遇。2025年,食堂承包服务已经从简单的餐饮供应,升级为涵盖食材配送…

漏洞赏金实战:我是如何轻松获得2500美元奖金的

本文详细介绍了作者在Uber应用中发现的电话号码泄露漏洞,包括漏洞发现过程、复现步骤、报告经历以及经验教训,展示了逻辑漏洞挖掘的实际案例。我在漏洞赏金计划中获得的最轻松的2500美元 大家好,今天我将谈论我发现…

华为网络设备重启-保存-清楚配置恢复出厂配置命令

1.reboot重启设备命令 reboot命令用来重新启动设备。 该命令功能与设备关闭电源再开启电源的效果相同。在对设备进行远程维护时,不需到现场重新启动设备,只需执行本命令即可在远程重新启动设备。 【1】重新启动设备 …

2025.11.10总结

今天对已有项目做拆解,对之后要做的项目做分析。 目前的就是一个多个没有关联的模块的耦合 心理咨询预约模块 1.获取咨询师列表 2.创建聊天室,实现实时会话 3.聊天记录 学习模块 1.创建学习包 2.能在学习包下添加视频…

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,PFA 隔膜阀,防腐隔膜阀,高纯隔膜阀,耐酸碱隔膜阀公司推荐

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜 在半导体制造、化工、医药等高纯和腐蚀性流体处理领域,PFA隔膜阀凭借其优异的耐腐蚀性、高纯度和可靠的密封性能,成为关键工艺环节不可或缺的部件。随着国内半导体产业链自主…