玩转doxygen 之RT-THREAD

2023-05-16

玩转doxygen 之RT-THREAD

文章目标

经常会看到小伙伴们遇到怎么写函数注释头疼,以及如何生成漂亮的代码注释文档头疼。据我了解,目前C语言中的代码注释规则有且只有一种比较常用,就是doxygen。所以掌握doxygen,对于我们写出漂亮的注释,至关重要。本文就教大家如何写doxygen,以及在RT-THREAD上如何整理出漂亮的API说明文档。

如何在RT-THREAD上生成doxygen

先教大家怎么操作,最近正好我整理了一下,发现RT-THREAD上面的doxygen

https://github.com/RT-Thread/rt-thread/tree/master/documentation/doxygen

生成不了文档,有些路径已经变掉了。所以帮大家修复了一下。

https://github.com/RT-Thread/rt-thread/pull/6217

现在大家只要下载最新的代码2022.8.4号之后的代码就可以了。

下载代码和软件

  • 首先将rt-thread的源码https://github.com/RT-Thread/rt-thread/ 下下来,可以用下面的命令
git clone git@git.zhlh6.cn:RT-Thread/rt-thread.git --depth=1
  • 下载doxygen的软件(在doxygen文件夹中的readme.md)https://doxygen.nl/index.html

下载step安装包就行doxygen-1.9.4-setup.exe

在这里插入图片描述

  • 安装doxygen,安装的时候没有什么需要注意的,直接下一步下一步就可以了。

生成html文档

我们打开刚才安装的软件Doxywizard

在菜单FileOpen 打开刚才下的RT-THREAD中的如下文件rt-thread/documentation/doxygen/Doxyfile

然后直接运行run 就可以了,所有操作完成。

在这里插入图片描述

如果想看中文,也可以根据下面的设置来选择中文

在这里插入图片描述

打开html文档

找到生成的html文件夹打开index.html文件就可以了

在这里插入图片描述

展现效果

接下来我们就可以看到效果图了,可以看到很多src目录下面大家写的一些注释

在这里插入图片描述

在这里插入图片描述

上面基本就是RT-THREAD的doxygen的使用方法了。是不是很简单,很方便?

下面简单介绍下如何自己写doxygen。

Doxygen 如何写

vscode 插件安装

我们先讲讲doxygen怎么写。传统方法直接用文本编辑器来写,这个我这边就不多介绍了。这边我们用一个工具来帮助我们来写常用的doxygen。打开vscode, 安装插件doxygen

在这里插入图片描述

这个插件一共有两种操作

  • 在源码文件中头部输入·/** ,然后直接按回车键,你可以看到自动生成的注释了。

在这里插入图片描述

  • 在写好的函数的上面输入/** , 然后也是按回车键,你就看也看到效果了。

在这里插入图片描述

doxygen文件生成

只要打开Doxygen工具,选择source 文件夹,之后点击run 就可以了

在这里插入图片描述

doxygen配置

doxygen的配置其实有很多很多,这边我就举几个常用的配置。

下面的配置可以生成左侧的树状图,方便查看。其他的配置不一一介绍了。

想了解的可以参考链接

https://mp.weixin.qq.com/s/HA352TEBELNJ9pgCTMkWIg

在这里插入图片描述

doxygen写的时候一些建议

问题一: doxygen的函数注释写在头文件中还是源文件中?

这个因不同公司角色而已。如果你的代码是作为lib的话。.c是不开放给客户的,这个时候,写在.h中比较好。

如果你是做开源的,源文件可以开放出来,这个时候,放在.c里面比较好。总之,只要放一个地方就行,其他地方不需要按照doxygen来写。

如果你有其他问题,可以评论区留言,我会一一解答

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玩转doxygen 之RT-THREAD 的相关文章

  • 多线程之创建工作者线程和用户界面线程区别

    转帖 部分原创 1 工作者线程倾向于琐碎的处理 与它不同的是 用户界面线程具有自己的界面而且实际上类似于运行其他应用程序 创建线程而不是其他应用程序的好处是线程可与应用程序共享程序空间 这样可以简化线程与应用程序共享数据的功能 2 典型情况
  • Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore

    Java并发编程 CountDownLatch CyclicBarrier和 Semaphore 2016 10 07 分类 基础技术 7 条评论 标签 并发 分享到 0 原文出处 海子 在java 1 5中 提供了一些非常有用的辅助类来帮
  • Java线程(Thread)生命周期的6种状态

    当线程被创建并启动以后 它既不是一启动就进入了执行状态 也不是一直处于执行状态 在线程的生命周期中 可能处于不同的状态 java lang Thread State 列举出了这6种线程状态 线程状态 导致状态发生条件 New 新建 线程刚被
  • 在 .NET 中使用 XML 注释有哪些优点?

    我无法理解使用 XML 注释的优点 我知道它们可以转换为代码外部的漂亮文档 但使用更简洁的 DOxygen 语法也可以实现同样的效果 我认为 XML 注释是错误的 因为 他们总体上混淆了注释和代码 它们更难被人类阅读 在单个屏幕上可以查看的
  • 整合ivy和doxygen

    有没有办法整合ivy和doxygen 我想通过 ivy 发布我的 doxygen 文档 可以吗 如果是的话怎么办 有文档说明如何操作吗 我不是 doxygen 用户 我假设您正在使用它来创建文档的 zip 存档 Ivy 可用于发布任何类型的
  • Doxygen - 将参数声明为可选

    我正在使用 Doxygen 记录代码库 并且想知道是否有一个关键字用于将函数的参数声明为可选 就像是 fn int add int a int b 0 brief adds two values param a the first oper
  • 如何设置 Doxygen 的输入目录?

    我有一个保存所有源文件和头文件的目录 我想运行 Doxygen 来生成这些源代码的文档 但是 我不想更改此目录中的任何内容 特别是我无法添加保存 Doxygen 文档的子目录 我怎样才能实现我所需要的 我想我需要做以下事情 我创建并转到 文
  • Doxygen-如何记录具有非标准扩展名 (.INI) 的文件

    我有一个简单的问题 如何记录 INI 文件 我有一个具有以下布局的 C 项目 readme txt src main cpp data simple ini 我从 readme txt 和 main cpp 生成文档没有问题 但 simpl
  • 我应该如何记录继承的成员? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一下我有一个复杂的类结构 其中许多元素继承自其他元素 我可能有一个方法GetStuff string stuffName int count
  • 如何显示定义的值

    在一些 doxygen 文档中 我想显示 define 而不是标签本身 例如 在一个 C 文件中我有 define REPEAT N TIMES 10 现在我想在我的文档中显示 该动作进行10次 如果我使用 ref REPEAT N TIM
  • Visual Studio 自动完成 C++ 的 Doxygen 标签

    有没有办法让 Visual Studio 自动将 doxygen 标签放入 C 源文件中 我的意思是例如这段代码 int foo bool p 如果我输入 在其之上 Visual Studio 自动生成以下行
  • 使用 Doxygen 自定义标签

    我想弄清楚是否有办法使用 Doxygen 创建自定义标签 我确实找到了 ALIAS 配置文件选项 但这并不完全符合我的需要 基本上在我的代码中我希望能够编写类似的内容 req Requirement 322 blah blah 然后让 Do
  • Doxygen 将全局变量声明视为 C++ 中的函数

    当我运行 Doxygen 1 8 15 时 我在日志文件中收到警告 指出并未记录函数的所有参数 warning parameters of member gSwInstallIoMgr are not all documented warn
  • // doxygen 中的注释

    我有一个 C 项目 需要使用 doxygen 进行记录 它拾取由 Visual Studio 自动生成的评论 但不幸的是它没有正常显示 评论 是否有我缺少的配置设置 或者这是不可能的 被称为XML 文档注释 http msdn micros
  • 在 C 中使用 Doxygen 记录变量

    Code include
  • 忽略 doxygen 注释块中的行

    是否可以在 doxygen 注释块中包含将被 doxygen 忽略的内容 换句话说 我们可以在 doxygen 评论块中发表评论吗 背景 我们正在将 Fortran 项目的代码内注释转换为 doxygen 可解析的格式 但是该项目要求代码内
  • Doxygen:在“相关页面”部分下添加自定义链接

    我有几个 html 页面解释了我的代码的不同部分 并且我最近也在其上运行了 Doxygen 我想在 Doxygen 的 相关页面 页面下添加指向我当前 html 页面的链接 除了手动插入之外 还有其他方法可以做到这一点吗 看看多氧 page
  • Doxygen 和 Objective-C 类别

    尽管 Doxygen 的最新版本声称可以更好地处理 Objective C 类别 http www doxygen nl manual changelog html 它似乎仍然对我的源代码中的类别感到窒息 我想知道是否有人已经让它正确地记录
  • 在 doxygen 中使用 SVG

    我正在尝试将 SVG 添加到我的 doxygen 文档中 第一次尝试是使用 image blabla svg 这有点工作 但是 SVG 包含另一个 png 参考 并且 内部 png 未显示 这在 Chrome 上有效 但即使在 Firefo
  • Doxygen:显示未记录方法的警告

    我已经用 doxygen 激活了警告 WARNINGS YES WARN IF UNDOCUMENTED YES WARN IF DOC ERROR YES WARN NO PARAMDOC YES 但未记录的方法如下 void Anima

随机推荐

  • 手把手教你实现Unity网络同步

    现如今 xff0c 网络同步的技术在各种游戏里被广泛应用和发展 xff0c 那么 xff0c 如何在Unity中搭建网络模块 xff1f 如何使服务器和客户端之间通信 xff1f 如何做到网络同步 xff1f 本文作者烂笔头 27将从自身经
  • Java个人学习笔记07多线程和网络编程

    Java 多线程编程 Java 给多线程编程提供了内置的支持 一条线程指的是进程中一个单一顺序的控制流 xff0c 一个进程中可以并发多个线程 xff0c 每条线程并行执行不同的任务 创建线程 Java 提供了三种创建线程的方法 xff1a
  • 同步/异步与阻塞/非阻塞的区别(转)(中软国际Fourth day)

    转自于 http www cppblog com converse archive 2009 05 13 82879 html 首先来解释同步和异步的概念 这两个概念与消息的通知机制有关 举个例子 比如我去银行办理业务 可能选择排队等候 也
  • python subprocess模块设置环境变量,加载动态库

    众所周知 xff0c 利用python的subprocess pOpen 可以执行应用程序 不过今天碰到一个问题 xff1a 应用程序需要调用动态库 xff0c 而且动态库和应用程序在同一目录下 不过python的运行目录不是应用程序所在目
  • 智能家居 WiFi&BLE 双模模组 WiFi蓝牙遥控器同时控制W800

    由于文档较长文档只展示部分资料需要了解详细资料 链接 https pan baidu com s 1cpmtH7fC7D RGBh09UbhIQ 提取码 pnu4 一 W800 Wi Fi 蓝牙双模SoC 芯片简介 2 二 W800 CDS
  • Qt Creator使用CMake配置第三方库

    语法 include directories 添加第三方库头文件路径 这里的 include directories 直接向括号里加入第三方库的头文件路径即可 span class token function include direct
  • QtGlobal中常见的一些函数和宏

    lt QtGlobal gt 头文件包含了 Qt 类库的一些全局定义 xff0c 包括基本数据类型 函数和宏 xff0c 一般的 Qt 类的头文件都会包含该文件 xff0c 所以不用显式包含这个头文件也可以使用其中的定义 全局变量定义 为了
  • 传感器之激光雷达简介与使用

    激光雷达是现今机器人尤其是无人车领域及最重要 最关键也是最常见的传感器之一 xff0c 是机器人感知外界的一种重要手段 概念 激光雷达 LiDAR xff0c 英文全称为 Light Detection And Ranging xff0c
  • sci_loopback_int的例程(中断程序)

    例程代码如下 xff1a include 34 DSP28x Project h 34 Device Headerfile and Examples Include File define CPU FREQ 40E6 Default 61
  • python中使用subprocess.Popen中的返回值总结:

    usr bin python coding UTF 8 import sys import subprocess import traceback author by zhangheng timestamp 2018 06 08 gennl
  • SPI工作模式

    1 SPI总线条数 MISO xff1a 主设备输入 从设备输出引脚 该引脚在从模式下发送数据 xff0c 在主模式下接收数据 MOSI xff1a 主设备输出 从设备输入引脚 该引脚在主模式下发送数据 xff0c 在从模式下接收数据 SC
  • 游戏常用算法:四种迷宫生成算法

    简介 所谓迷宫生成算法 xff0c 就是用以生成随机的迷宫的算法 迷宫生成算法是处于这样一个场景 xff1a 一个row行 xff0c col列的网格地图 xff0c 一开始默认所有网格四周的墙是封闭的 要求在网格地图边缘 xff0c 也就
  • OPEN alliance工作小组

    Open Alliance TC 8小组 TC 8 xff1a 汽车以太网ECU测试规范 TC 8分配了汽车以太网ECU测试规范 它根据这些共享要求定义了适用于汽车以太网网络中所有ECU的规范 TC8定义了测试流程和支持建立能够执行ECU测
  • 测试PCB线路的阻抗的方法

    1 TDR测试 TDR是利用短脉冲信号发送到测试信号线上 xff0c 当信号到达另一端或者遇到不匹配点的时候就会发生反射回来 通过测量反射信号的时间和特征来判断线路的阻抗和不匹配点的位置 TDR测试需要专业的测试设备 xff0c 如时域反射
  • 开关电源的特性阻抗

    一 开关电源的特性阻抗好坏可以用以下几个量化指标来评估 xff1a 1 交流阻抗 xff08 AC Impedance xff09 xff1a 交流阻抗是指开关电源在交流信号下的电阻 电感和电容等电学特性 交流阻抗的好坏直接影响开关电源的驱
  • 学网络比不可少的网络协议分析神器-wireshark

    Wireshark是一款网络协议分析器 xff0c 可以用于捕获和分析网络数据包 xff0c 以便深入了解网络通信的细节和性能 xff0c 同时也可以用于网络安全分析和故障排除 Wireshark的主要功能包括 xff1a 1 捕获网络数据
  • C语言return的用法详解,C语言函数返回值详解

    C语言return的用法详解 xff0c C语言函数返回值详解 函数的返回值是指函数被调用之后 xff0c 执行函数体中的代码所得到的结果 xff0c 这个结果通过 return 语句返回 return 语句的一般形式为 xff1a spa
  • 网络编程——多线程编程

    文章目录 目的内容源代码及结果 1 Linux下的线程同步 1 1 编程使用互斥量实现线程同步 xff1b 1 2 编程使用信号量实现线程同步 xff0c 要求实现以下功能 xff1a 线程A从用户输入得到值后存入全局变量num xff0c
  • ARM-MPU内存保护单元详解

    ARM MPU 详解 简介 MPU Memory Protection Unit 内存保护单元 本文主要讲 armv7 m 架构 架构下的 MPU 在 armv7 m 架构下 xff0c Cortex M3 和 Cortex M4 处理器对
  • 玩转doxygen 之RT-THREAD

    玩转doxygen 之RT THREAD 文章目标 经常会看到小伙伴们遇到怎么写函数注释头疼 xff0c 以及如何生成漂亮的代码注释文档头疼 据我了解 xff0c 目前C语言中的代码注释规则有且只有一种比较常用 xff0c 就是doxyge