利用Doxygen生成代码文档

Doxygen —— 快来为你的代码自动生成一份专属说明文档 Doxygen是一个能从带注释的源码中自动生成说明文档的标准工具,它支持众多流行的编程语言,包括C/C++、C#, PHP, Java, Python, IDL 等 阅读详情

Doxygen是一个代码文档生成工具。它从代码文件中提取注释并可生成多种文档形式。如:网页文档HTML,RTF (MS-Word),PDF等等。同时也可生成函数之间的调用和文件的依赖关系图表。

Doxygen除了支持C++语言外还支持C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors),甚至它也支持硬件描述语言VHDL。

doxygen的安装

  1. 使用apt安装doxygen
sudo apt install doxygen
  1. 使用最新版的二进制安装(该种方式想对于第一种,可安装最新的版本)

doxygen的下载页面:

https://www.doxygen.nl/download.html

找到下面图片所示,下载二进制包。

可以看到,该二进制包是在Ubuntu 20.04环境下编译的,可能不适用于其他版本的系统。

解压二进制包后,进入包文件夹,使用下面的命令安装。

sudo make install

makefile中没有安装doxywizard。

我们可以手动拷贝到/usr/local/bin/中。

cd doxygen-1.9.4/bin
sudo cp doxywizard /usr/local/bin/

Doxywizard是一个GUI应用。可以用它来生成Doxygen的配置文件。

  1. 安装graphviz

Graphviz是开源的图形可视化软件。它可以将结构化的信息以图表的形式显示出来。doxygen可以调用Graphviz显示函数的调用关系。

sudo apt install graphviz
  1. htmlhelp说明

htmlhelp是一个可以将html网页文件生成一个独立的chm文件的软件工具。但它目前只能运行在windows环境下。

如果需要生成chm文件,可将doxygen生成的网页文件拷贝至windows环境下,然后用htmlhelp来生成chm文件。

注释和文档效果

  1. 头文件中添加如下函数注释。
  /**
   * @brief Deactivates action server
   * @param state Reference to LifeCycle node state
   * @return SUCCESS or FAILURE
   */
  nav2_util::CallbackReturn on_deactivate(const rclcpp_lifecycle::State & state) override;

上面的注释方式是采用Javadoc风格的。其实还有其他的风格。可以查看下面的网址了解:

https://www.doxygen.nl/manual/docblocks.html#cppblock

文档中对应的显示效果如下。

另外一个示例:

  /**
  * @brief Construct the TebConfig using default values.
  * @warning If the \b rosparam server or/and \b dynamic_reconfigure (rqt_reconfigure) node are used,
  *	     the default variables will be overwritten: \n
  *	     E.g. if \e base_local_planner is utilized as plugin for the navigation stack, the initialize() method will register a
  * 	     dynamic_reconfigure server. A subset (not all but most) of the parameters are considered for dynamic modifications.
  * 	     All parameters considered by the dynamic_reconfigure server (and their \b default values) are
  * 	     set in \e PROJECT_SRC/cfg/TebLocalPlannerReconfigure.cfg. \n
  * 	     In addition the rosparam server can be queried to get parameters e.g. defiend in a launch file.
  * 	     The plugin source (or a possible binary source) can call loadRosParamFromNodeHandle() to update the parameters.
  * 	     In \e summary, default parameters are loaded in the following order (the right one overrides the left ones): \n
  * 		<b>TebConfig Constructor defaults << dynamic_reconfigure defaults << rosparam server defaults</b>
  */
  TebConfig()
  {

  }

\b 可以加粗后面的关键词,\e表示后面的词进行斜体显示,<b> ...</b> 可将其中的内容加粗显示。\n 则是显式添加回车。

文档上的显示效果:

再一个示例:

      /**
       * A pure virtual member.
       * @see testMe()
       * @param c1 the first argument.
       * @param c2 the second argument.
       */
       virtual void testMeToo(char c1,char c2) = 0;

显示效果:

注意,注释中添加的关键字。

@brief 表示后面的内容是对函数功能的描述

@warning 一些警告信息

@param 传入参数的说明

@return 函数返回结果的说明

@see 方便跳转相关联的函数

**另外注意,**函数的注释放在头文件和源文件中效果是等同的。

  1. 项目中的markdown文档会生成相应的页面

  1. 对类成员的注释
  std::string odom_topic; //!< Topic name of the odometry message, provided by the robot driver or simulator
  std::string map_frame; //!< Global planning frame
  std::string node_name; //!< node name used for parameter event callback

文档显示效果:

  1. 注释一个结构体
  //! Trajectory related parameters
  struct Trajectory
  {
    double teb_autosize; //!< Enable automatic resizing of the trajectory w.r.t to the temporal resolution (recommended)
	...
    int control_look_ahead_poses; //! Index of the pose used to extract the velocity command
  } trajectory; //!< Trajectory related parameters

结构体上面的 //! Trajectory related parameters是对结构体的描述。

下面的//!< Trajectory related parameters是对声明的类成员的描述。注意与上面符号的区别,这里多了一个<。其实<说明了注释的方向。

  1. 注释一个类
/**
 * @class TebConfig
 * @brief Config class for the teb_local_planner and its components.
 */
class TebConfig
{
    ...
}

生成文档

生成配置文件

用下面的命令生成配置模板文件

doxygen -g

运行完后默认会生成一个名为Doxyfile的配置文件。

然后就可以根据需求手动修改配置文件了。

当然我们也可以基于图形界面来修改该文件。

运行doxywizard

doxywizard

然后点击file->open打开Doxyfile配置文件。

或者直接使用

doxywizard Doxyfile

常用的参数配置

  1. 打开调用关系图

显示效果如下:

上图显示了该函数调用了哪些函数,然后又被什么函数调用了。

  1. 当JAVADOC_AUTOBRIEF参数设置为YES时,会将下面的注释内容直接当成简介描述。
/**
 *  A test class. A more elaborate class description.
 */

如果设置成NO的话,则需要添加@brief显式标记。

/**
 *  @brief A test class. A more elaborate class description.
 */
  1. 如果希望生成的文档中包含源码,则需要如下配置

生成文档

在具有Doxyfile配置文件的目录下运行doxygen即可生成文档。

doxygen

也可以在doxywizard里点击运行doxygen来生成文档。


觉得有用就点赞吧!

我是首飞,一个帮大家填坑的机器人开发攻城狮。

另外在公众号《首飞》内回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。

Doxygen 使用指南 Doxygen是一个文档生成工具,可以从源代码中的注释生成高质量的文档,支持多种编程语言。 阅读详情

相关推荐

使用 Doxygen 生成文档注释

全文是个人关于注释的观点,很可能有误,不想误人子弟,请慎重考虑其中的任何一个观点 ,欢迎拍砖。

chenyuping333的博客 1347

【Doxygen】Doxygen使用教程(个人总结)

【Doxygen】Doxygen使用教程(个人总结) 简介Doxygen 引言.什么是Doxygen? Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件。通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞铁达尼号同样的辛苦。大部分有用的批注都是属于针对函式,类别等等的说明。所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用您的程序代码的人而言将会减少许多的负担。不过,反过来说,整理文件的工作对于您

qq_43331089的博客 5万+

Doxygen——根据代码注释生成文档的工具

文章目录1 简介2 安装3 使用3.1 注释代码3.2 使用doxywizard生成文档4 用例4.1 OpenCV4.2 Apollo5 参考 1 简介 Doxygen是一个可以根据代码注释生成文档的工具,支持HTML、CHM、LaTex等格式。主要支持C语言、Python语言,还支持C++、Java、C#等语言。 通常我们在写程序时,或多或少都会写上注释,但是对于其它人而言,要直接探索程序里的注释会比较麻烦。大部分有用的注释都是属于对函数、类型等的说明。所以,如果能依据程序本身的结构,将注释经过处理重新

W_Tortoise的博客 8455

代码注释工具——Doxygen(个人使用心得)

如何使用代码注释工具doxygen

weixin_69955090的博客 3535

使用Doxygen生成代码文档

0        序 某日在查看alsalib源代码的时候,发现了doxygen这个软件,能够根据源码生成各种格式,排版简洁的文档,并且还有一些函数调用图,产生了一点小惊喜的感觉。所以我在这几日的文档编写过程中实践了一下,本文就是简要的说明一下doxygen的使用以及遇到的一些问题。 1        相关安装包 在debian下面是用doxygen的话,需要安装以下的软件。

且行且珍惜 1234

DoxyGen 生成 文档

基于 DoxyGen 插件生成 程序 帮助 文档 效果预览: HTML 帮助文档 CHM 帮助文档 这个 还是 需要 写代码 的 时候 更加规范 才可以,不然 文档 估计 也是 没法看了!哈哈哈! 环境 安装 配置 各种插件 工具 下载 集合 :下载传送地址 提取码:zqdv 下载解压 后 如下图 : c# 文件夹 是 DoxyGen 关于 常见 编程语言的 工具集! 包括 c / c++ / C# / java 等… Lua 文件夹 是 lua文档 相关的 工具集… 在这篇文章 中 只会

qq_37682160的博客 796

如何利用doxygen生成代码的API文档

1. 首先写代码的注释一定要follow doxygen的格式https://www.doxygen.nl/manual/grouping.html 2. 有了代码之后,生成一个congig文件, doxygen -g config_file 3. 根据https://www.doxygen.nl/manual/config.html这里修改默认的参数 4. doxygen config_file 生成api文档 5. 生成的文档html里面有一个index.html打开就可以看api的信息了 .

qq_31638535的博客 467

国产谷歌地球,地形分析秒杀同款地图软件

咱们做地质、林业、水文、水利、电力、GIS、地图、水保、环境的,需要经常用到各种数据,比如影像、地形、矢量、模型等,但目前80%的规划大数据展示都离不开ArcGIS,令人头大的是很多朋友连ArcGIS软件安装起来都费劲。。。 那不会ArcGIS又装不了Google Earth怎么开展工作? 今天推荐大家一款国产免费专业地图浏览下载测量分析神器—图新地球 图新地球,国产三维gis软件。可以查看高清卫星影像地形以及其他很多常用电子地图,对地图需求的掌握远胜过Google Maps,而且上手比国外软件要简单

GISWorld3D的博客 3685

doxygen如何生成JAVA文档_【转】windows环境下利用doxygen生成代码文档

Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器(或.chm格式),或离线的LATEX、RTF参考手册。准备工作:1、下载最新版本的doxygen(当前使用1.7...

weixin_42348021的博客 452

国产射频直采收发器CX8242KA JESD204C调试

杭州诚芯公司的CX8242KA是国内开发的极少数支持JESD204C接口的高速AD、DA,Serdes具备支持接收和发送,并且速率可以到25Gbps,在国内属于领先水平。250M参考时钟输入,AD采样率2.5G,DA采样率10G,3收2发,主通道模式4,反馈通道模式1,基带采样率1250M,线速率20.625G,收发同时配置混频625M。CX8242KA的204C接口模式支持10种模式,在手册上都有说明。2、 支持TX信道编码,RX信道解码,提升健壮性。这里使用模式4,支持双通道模式,并且反馈开启。

RFSOC的博客 6221

CATIA CAA 二次开发去除面内开孔

测试模型: 代码说明:以下代码在拓扑级去除Face的内部loop,更改后的Body通过oispBody参数输出。主要使用CATSmartBodyDuplicator拓扑操作实现 HRESULT CAAStarterCmd::RemoveHoleOnFace(CATBody_var &ispBody,CATBody_var &oispBody){ CATLISTP(CATCell)olistFace; ispBody->GetAllCells(olistFace,2); CATF

weixin_45445751的博客 2265

Doxygen生成GPGPUSim v3项目代码文档

使用Doxygen生成GPGPUSim v3项目代码文档

Wang121201的博客 563

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8169

c++ doxygen 注释规范_利用Doxygen给C程序生成注释文档

利用Doxygen为C程序生成注释文档一、Doxygen工具的安装利用Doxygen工具生成API帮助文档需要下载安装以下三个软件:(1)Doxygen:可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。本文中所使用的版本为:Doxygen-1.8.18.(2)Htmlhelp:该软件可以帮助您建立 HTML 格式的 HELP 文件。用于创建....

weixin_36431195的博客 1676

ADI官方例程HDL和No-OS生成Vivado工程

这一步是选择下载源,一般都是选择国内镜像,因为国外的源太慢了,这里选择阿里的镜像,如果没有这个选项可以在下面的User URL里添加就行,选择好源后然后点击下一步。下一步会从你选择的源上下载软件包目录,如果提示Unable to get setup from https://xxxxxx/,返回上一步,选择别的源,例如第二个163网易的源。然后就是你想要安装在哪了,下面的选项好像会决定环境变量存放在哪,不过一般都是个人电脑选择第一个默认的就行,然后点下一步。下好之后双击打开,就是这个界面了,直接点下一步。

代码匠的博客 3832

深入解析CRC-16校验算法及其Verilog硬件实现

本文深入解析了CRC-16校验算法的原理及其在Verilog中的硬件实现方法。从基础的模2除法到串行和并行实现方案,详细介绍了LFSR结构、状态转移分析以及工业应用中的优化技巧。通过实际案例和性能对比,帮助开发者理解如何选择适合的CRC实现方案,确保数据传输的可靠性。

yolo5detector的博客 322

Doxygen生成美丽注释文档(1):初体验

Chapter 1 - 准备工作 (Windows环境) 1.1 程序包下载 1. Doxygen   * 源码: git clone https://github.com/doxygen/doxygen.git   * GUI版本:点击下载   * 便携压缩包版本:下载 32位版本 64位版本 2. HTML Help Workshop   用于生成CHM文件,便于传...

aiqianqi1796的博客 615

一分钟详解PCL中点云配准技术

原文首发于微信公众号「3D视觉工坊」: 一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更为深刻。 一 PCL中点云配准技术的简单实现 在同一文件夹下,有测试数据文件monkey.ply,该文件是利用Blender创建的默认Monkey模型。 利用如下代码,将初始点云(图中绿色点云)...

3D视觉工坊 3704

Doxygen使用

Doxygen 是一个流行的用于生产代码文档的工具,关于它的介绍可以参考官网:https://www.doxygen.nl/index.html。

czw 1437

Open3d Qt的环境配置

目前统一使用qt6配置,open3d中可视化功能目前使用vtk代替,语言为c++。

阁楼 919

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

doxygen 命令_doxygen使用总结

doxygen[功能]为许多种语言编写的程序生成文档的工具。[举例]*生成一个模板配置文件,模板文件中有详细的注释:$doxgen -g test这样,会生成一个test文件,1500多行,可以把这个文件做为模板编写配置文件。如果之前有test那么会将原来的test备份为test.bak.模板文件的部分内容如下:...前面的内容省略...DOXYFILE_ENCODING = UTF-8...

weixin_28778547的博客 1497

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Doxygen简单经验谈。。。

Doxygen,大名鼎鼎的文档生成工具,被Boost、OpenCasCade等诸多项目作为文档生成的不二人选。人说,才华横溢往往是高深莫测,这句话放在Doxygen这里显然是不适用的。十八般武艺样样精通的Doxygen,却十分的简单易用,从头到尾看一下它随机的文档,想不会用都难。

markman101---神即是道 道法自然 如来 1027

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【函数调用关系生成】Doxygen+Graphviz实现代码项目文档生成,包括函数调用关系图

生成代码的函数关系调用图

Trans4mer的博客 2627

学习用 doxygen 生成源码文档

学习用 doxygen 生成源码文档 Arpan Sen, 资深工程师, Studio B Productions简介: 维护用 C/C++ 开发的遗留系统并添加新特性是一项艰难的任务。幸运的是,doxygen 可以帮助您完成这个任务。doxygen 是一种用于 C/C++、Java™、Python 和其他编程语言的文档系统。本文在 C/C++

小猪爱拱地 828

Ubuntu18.04 使用doxygen生成注释文档

在程序开发的过程中,经常遇到的是与别人交接程序,直接看别人代码是很头疼的一件事情, 更何况现在有一些人写的程序非常的烂,几百行一个的函数,瞎起名字的变量,简直是代码自带加密功能,对人非常不友好。 本人以前的公司,要求的比较严格,系统设计详细设计各种文档都是比较全的, 设计完成后再写代码,给别人解释程序的时候,将详细设计文档发给别人就可以了。可以避免直接看代码的问题。在现在的工作时遇到的问题就是开发的周期非常短,提出需求来就马上要功能,根本没有设计一说,时间长了搞得非常难受,尤其多人参与一个模块的项目。 下面

RedCrabe的博客 2545

c++代码注释生成文档工具-doxygen

需求 vdk代码注释生成api文档 思路 将vdk转成c++后脚本调用doxygen处理生成html文件 Doxygen 介绍 是从带注释的 C++ 源代码生成文档的事实上的标准工具,但它也支持其他流行的编程语言,如 C、Objective-C、C#、PHP、Java、Python、IDL(Corba、Microsoft 和 UNO/OpenOffice 风格) )、Fortran、VHDL 以及在某种程度上 D. 官网链接 https://www.doxygen.nl/index.html 应用实例 do

小花生编程 1517
上一篇: 绘图小能手gunplot
下一篇: 函数绘图工具
首飞爱玩机器人
博客等级 码龄14年 6990粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

首飞爱玩机器人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值