doxygen–自动生成文档工具

原文地址:doxygen–自动生成文档工具 – 无敌牛

欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等

简介

doxygen是软件开发中广泛使用的文档生成工具。它可以从源代码注释中自动生成文档,解析类、函数、参数相关信息,并生成 HTML 和 PDF 格式的文档。doxygen 简化了并且标准化了文档生成过程,可以实现跨编程语言和项目来维护管理项目,增强编码协助能力。

官方地址:https://www.doxygen.nl/index.html

示例

拿一个小的开源项目 libucl 做一个测试,libucl的源代码在:GitHub - vstakhov/libucl: Universal configuration library parser

获取代码:git clone https://github.com/vstakhov/libucl.git

生成 doxygen 的配置文件:doxygen -g 。默认在当前目录下生成 Doxyfile 文件。

对文件中的输入和输出配置做个修改

INPUT = src

OUTPUT_DIRECTORY = docs

执行:doxygen 生成文档

进入目录查看生成的文档

搭建简单的网站,查看文档。

可以使用 python3 的 http.server 模块

访问刚搭建的网站,随便点点。

注释简单说明

doxygen支持 C/C++/golang/C#/Java/PHP/Python/Ruby 等很多语言,需要在代码中规范化编写注释就可以实现自动生成文档

C/C++

函数/方法
/*** 简短描述。** 更详细的描述...** @param param1 参数1的说明。* @param param2 参数2的说明。* @return 返回值的说明。*/
void myFunction(int param1, float param2);类/结构体
/*** 类的简短描述。** 更详细的描述...*/
class MyClass {
public:/*** 构造函数的简短描述。*/MyClass();
};成员变量
/// 简短描述。
int myVariable;

python

模块及注释
"""
Module-level brief description.This module provides functionality for ...
"""# Alternatively, you can use single-line comments with specific tags:
# @file my_module.py
# @brief Module-level brief description.函数/方法
def my_function(param1, param2):"""简短描述。更详细的描述...:param param1: 参数1的说明。:param param2: 参数2的说明。:returns: 返回值的说明。"""pass还需要在 doxygen 的配置文件中设置对 Python 的支持
INPUT                  = ./your-python-source-directory/
FILE_PATTERNS          = *.py
OPTIMIZE_OUTPUT_PYTHON = YES  # Optimize output for Python syntax
EXTRACT_ALL            = YES  # Extract all symbols, not just those with documentation comments

golang

函数/方法
// Short description of the function.
//
// Detailed description of the function, if needed.
// 
// @param param1 Description of the first parameter.
// @param param2 Description of the second parameter.
// @return Description of the return value.
func myFunction(param1 int, param2 string) (int, error) {// Function implementation...
}类型定义(结构体)
// MyStruct is a brief description of the struct.
type MyStruct struct {// Field1 is a brief description of this field.Field1 int// Field2 is a brief description of this field.Field2 string
}

使用标记

Doxygen 提供了大量的标记来描述不同的元素,例如参数、返回值、作者等。一些常用的标记包括:

  • @param 或 \param:描述函数或方法的参数。
  • @return 或 \return:描述函数或方法的返回值。
  • @brief 或 \brief:提供一个简短的描述。
  • @see 或 \see:引用其他函数、类或文件。
  • @author 或 \author:指定代码的作者。
  • @file 或 \file:为整个文件添加描述。
  • @warning 或 \warning:给出警告信息。
  • @note 或 \note:提供额外的注意事项。
  • @deprecated 或 \deprecated:标识已废弃的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488044.html

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

相关文章

上市公司投资效率Biddle模型数据(包括最终数据、原始数据及构造说明)2003-2022年

一、计算方式:参考《Journal of accounting and economics》Biddle G C,构建Biddle模型使用企业投资对成长机会的回归模型来估计企业的投资效率,这里成长机会用销售增长率来衡量。回归模型如下图所示: 二、资料范围:包括原始数据…

用JavaScript实现一个贪吃蛇游戏

原理如下,贪吃蛇的蛇身就是一个数组,数组中的每个元素都是一个坐标,蛇身每次移动时都会在数组前插入一个新坐标,并在数组尾部删掉一条记录,吃到食物后数组的尾部记录就不删。如果移到屏幕边缘会从屏幕的另一边出现。好…

【Canvas与光阑】立方体六彩光阑

【成图】 120*120的png图标 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>立方体 六彩光阑 Draft2</…

[代码随想录14]二叉树的常用操作,翻转,对称,最大深度和最小深度,递归版本

前言 在二叉树的题目中&#xff0c;递归的解法无疑是是最简单和最好理解的&#xff0c;也能快速解题&#xff0c;本篇介绍一下递归的常见的二叉树题目。 题目链接 226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 101. 对称二叉树 - 力扣&#xff08;LeetCode&#…

css基础记录

基础 选择器 复合选择器 后代选择器 div p {}; 类似如上,找到div中所有的后代,注意是所有的后代 子代选择器 > div > a 只选择div的儿子中有a的 并集选择器 用逗号,分隔 p,div,span,h1 { … } 一般一行写一个 CSS元素显示模式 分为块元素,行内元素 块元素 特点…

HDR视频技术之六:色调映射

图像显示技术的最终目的就是使得显示的图像效果尽量接近人们在自然界中观察到的对应的场景。 HDR 图像与视频有着更高的亮度、更深的位深、更广的色域&#xff0c;因此它无法在常见的普通显示器上显示。 入门级的显示器与播放设备&#xff08;例如普通人家使用的电视&#xff0…

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今&#xff0c;经历了多个版本的迭代。 &#xff08;一&#xff09;早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准&#xff0c;提供了表格、文字绕排和复杂数学元素显示等新特性&#xff0c;但因实现复杂且缺乏浏览器…

webrtc学习----前端推流拉流,局域网socket版,一对一

提示&#xff1a;局域网socket版 文章目录 [TOC](文章目录) 前言一、教程二、webrtc工作流程三、推流端四、拉流五、socket服务六、效果七、备注总结 前言 ‌‌‌‌‌WebRTC&#xff08;Web Real-Time Communication&#xff09;‌是一种实时通讯技术&#xff0c;允许网络应用或…

IMX6ULL开发板挂载 Ubuntu 的 NFS 目录,并以交叉编译得到的hello程序进行测试

首先参考博文 https://blog.csdn.net/wenhao_ir/article/details/144404637 使得IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu能互相Ping 通 然后开始将Ubuntu 的 NFS 目录挂载到Ubuntu中。 为什么挂载&#xff1f; 答&#xff1a;其实是把 Ubuntu中的某个目录通过NFS网…

Vscode 构建 uniapp vue3 + ts 微信小程序项目

前言 为什么要使用 Vscode 来开发构建 uniapp 项目&#xff1f;从个人角度来讲&#xff0c;仅是想要 Vscode 丰富的插件生态&#xff0c;以及最重要的优秀的 TtypeScript 类型检查支持&#xff0c;因为本人是 TS 重度使用者。 如果你更习惯使用 js 进行开发&#xff0c;使用 …

【Spark】Spark的两种核心Shuffle工作原理详解

Spark 的shuffle机制 一、Spark ShuffleManager 发展历程 Spark 1.1.0 之前 在 Spark 1.1.0 之前&#xff0c;Spark 使用 BlockStoreShuffleFetcher 来处理 Shuffle 操作。这个实现主要依赖于直接从 BlockManager 获取 Shuffle 数据&#xff0c;并通过网络进行交换。 Spark …

网上商城系统设计与实现

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本网上商城系统就是在这样的大环境…

UE5制作血条和血包【扣血/回血机制】

首先到第三人称蓝图&#xff0c;创建一个变量health&#xff0c;代表血量&#xff0c;默认值改为100 接着创建一个控件蓝图 设置血条颜色和绑定百分比 绑定血条&#xff0c;因为是百分比所以除以100 然后到第三人称蓝图Begin Play后创建控件蓝图&#xff0c;添加到视口 …

LabVIEW实验站反馈控制系统

开发了一套基于LabVIEW的软X射线磁性圆二色实验站的反馈控制系统。这套系统主要用于实现对实验站高电压的精确控制&#xff0c;从而保持照射在样品上的流强稳定性&#xff0c;为分析样品吸收谱提供可靠基准&#xff0c;同时提供了易用的用户界面和强大的数据存储功能。 项目背景…

【区块链】区块链密码学基础

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1…

题海拾贝:力扣 20、有效的括号

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion,开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡.-CSDN博客 我的专栏&#xff1a;《编程之路》、《题海拾贝》、《数据结构与算法之美》 欢迎点赞、关注&#xff01; 1、题目 2、题解 这…

在 Ansys Mechanical 中使用“螺栓工具”插件自动生成螺栓

总结 在有限元分析 &#xff08;FEA&#xff09; 中&#xff0c;高效创建螺栓连接对于确保机械装配的结构完整性和性能至关重要。螺栓是连接组件不可或缺的一部分&#xff0c;它们在负载下的精确建模会影响整个系统。快速高效的螺栓建模使工程师能够快速优化设计&#xff0c;满…

汽车零部件设计之——发动机曲轴预应力模态分析仿真APP

汽车零部件是汽车工业的基石&#xff0c;是构成车辆的基础元素。一辆汽车通常由上万件零部件组成&#xff0c;包括发动机系统、传动系统、制动系统、电子控制系统等&#xff0c;它们共同确保了汽车的安全、可靠性及高效运行。在汽车产业快速发展的今天&#xff0c;汽车零部件需…

螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片

螺丝螺帽缺陷检测识别数据集&#xff0c;支持yolo&#xff0c;coco&#xff0c;voc三种格式的标记&#xff0c;一共3081张图片 3081总图像数 数据集分割 训练组90&#xff05; 2781图片 有效集7% 220图片 测试集3% 80图片 预处理…

css矩形样式,两边圆形

废话不多说&#xff0c;代码如下&#xff0c;直接拷贝即可使用&#xff1a; index.vue文件 <template><view class"wrap"><view class"tabs"><view class"tab active"><view class"name">标签</view…