doxygen 生成源码文档

使用doxygen 生成源代码的文档是相当方便的,本文就简单整理下doxygen的使用说明

1. 安装

 关于安装的问题不做特殊的说明,这里直接使用命令安装, 源码安装不做介绍

ubuntu: 

sudo apt-get install doxygen

centos

sudo yum install doxygen

2. 配置文件配置

 关于doxygen主要的部分就在于配置文件的配置, doxygen相当强大,所以配置文件内容有点多。这里只介绍一部分,大家有兴趣可以继续深入研究

 (1) 重要标记

  配置文件采用 <TAGNAME> = <VALUE> 这样的结构,与 Make 文件格式相似。下面是最重要的标记:

  <OUTPUT_DIRECTORY>必须在这里提供一个目录名,例如 /home/user1/documentation,这个目录是放置生成的文档文件的位置。如果提供一个不存在的目录名,doxygen 会以这个名称创建具有适当用户权限的目录。

  <INPUT>这个标记创建一个以空格分隔的所有目录的列表,这个列表包含需要生成文档的 C/C++ 源代码文件和头文件。例如,请考虑以下代码片段:

  INPUT = /home/user1/project/kernel /home/user1/project/memory

  在这里,doxygen 会从这两个目录读取 C/C++ 源代码。如果项目只有一个源代码根目录,其中有多个子目录,那么只需指定根目录并把<RECURSIVE> 标记设置为 Yes

  <FILE_PATTERNS>在默认情况下,doxygen 会搜索具有典型 C/C++ 扩展名的文件,比如 .c、.cc、.cpp、.h 和 .hpp。如果<FILE_PATTERNS> 标记没有相关联的值,doxygen 就会这样做。如果源代码文件采用不同的命名约定,就应该相应地更新这个标记。例如,如果项目使用 .c86 作为 C 文件扩展名,就应该在 <FILE_PATTERNS> 标记中添加这个扩展名。

  <RECURSIVE>如果源代码层次结构是嵌套的,而且需要为所有层次上的 C/C++ 文件生成文档,就把这个标记设置为 Yes。例如,请考虑源代码根目录层次结构 /home/user1/project/kernel,其中有 /home/user1/project/kernel/vmm 和 /home/user1/project/kernel/asm 等子目录。如果这个标记设置为 Yes,doxygen 就会递归地搜索整个层次结构并提取信息。

  <EXTRACT_ALL>这个标记告诉 doxygen,即使各个类或函数没有文档,也要提取信息。必须把这个标记设置为 Yes

  <EXTRACT_PRIVATE>把这个标记设置为 Yes。否则,文档不包含类的私有数据成员。

  <EXTRACT_STATIC>把这个标记设置为 Yes。否则,文档不包含文件的静态成员(函数和变量)。

(2) 文档输出格式  

  除了 HTML 之外,doxygen 还可以生成几种输出格式的文档。可以让 doxygen 生成以下格式的文档:

  UNIX 手册页:把 <GENERATE_MAN> 标记设置为 Yes。在默认情况下,会在 <OUTPUT_DIRECTORY> 指定的目录中创建 man 子文件夹,生成的文档放在这个文件夹中。必须把这个文件夹添加到 MANPATH 环境变量中。

  Rich Text Format(RTF):把 <GENERATE_RTF> 标记设置为 Yes。把 <RTF_OUTPUT> 标记设置为希望放置 .rtf 文件的目录;在默认情况下,文档放在OUTPUT_DIRECTORY 中的 rtf 子文件夹中。要想支持跨文档浏览,应该把 <RTF_HYPERLINKS> 标记设置为 Yes。如果设置这个标记,生成的 .rtf文件会包含跨文档链接。

  Latex:在默认情况下,doxygen 生成 Latex 和 HTML 格式的文档。在默认的 Doxyfile 中,<GENERATE_LATEX> 标记设置为 Yes。另外,<LATEX_OUTPUT> 标记设置为 Latex,这意味着会在 OUTPUT_DIRECTORY 中创建 latex 子文件夹并在其中生成 Latex 文件。

  Microsoft® Compiled HTML Help(CHM)格式:把 <GENERATE_HTMLHELP> 标记设置为 Yes。因为在 UNIX 平台上不支持这种格式,doxygen 只在保存HTML 文件的文件夹中生成一个 index.hhp 文件。您必须通过 HTML 帮助编译器把这个文件转换为 .chm 文件。

  Extensible Markup Language(XML)格式:把 <GENERATE_XML> 标记设置为 Yes。(注意,doxygen 开发团队还在开发 XML 输出)。

(3) 图形和图标生成

  在默认情况下,Doxyfile 把 <CLASS_DIAGRAMS> 标记设置为 Yes。这个标记用来生成类层次结构图。要想生成更好的视图,可以从 Graphviz 下载站点 下载dot 工具。Doxyfile 中的以下标记用来生成图表:

  <CLASS_DIAGRAMS>在 Doxyfile 中这个标记默认设置为 Yes。如果这个标记设置为 No,就不生成继承层次结构图。

  <HAVE_DOT>如果这个标记设置为 Yes,doxygen 就使用 dot 工具生成更强大的图形,比如帮助理解类成员及其数据结构的协作图。注意,如果这个标记设置为 Yes<CLASS_DIAGRAMS> 标记就无效了。

  <CLASS_GRAPH>如果 <HAVE_DOT> 标记和这个标记同时设置为 Yes,就使用 dot 生成继承层次结构图,而且其外观比只使用<CLASS_DIAGRAMS> 时更丰富。

  <COLLABORATION_GRAPH>如果 <HAVE_DOT> 标记和这个标记同时设置为 Yes,doxygen 会生成协作图(还有继承图),显示各个类成员(即包含)及其继

  承层次结构。

(4) 代码文档样式  

  每个代码元素有两种描述:简短的和详细的。简短描述通常是单行的。函数和类方法还有第三种描述体内描述(in-body description),这种描述把在函数体中找到的所有注释块集中在一起。比较常用的一些 doxygen 标记和注释样式如下:

  • 简短描述:使用单行的 C++ 注释,或使用 <\brief> 标记。
  • 详细描述:使用 JavaDoc 式的注释 /** … test … */(注意开头的两个星号 [*])或 Qt 式的注释 /*! … text … */
  • 体内描述:类、结构、联合体和名称空间等 C++ 元素都有自己的标记,比如 <\class><\struct><\union> 和 <\namespace>

  为了为全局函数、变量和枚举类型生成文档,必须先对对应的文件使用 <\file> 标记。清单 12 给出的示例包含用于四种元素的标记:函数标记(<\fn>)、函数参数标记(<\param>)、变量名标记(<\var>)、用于 #define 的标记(<\def>)以及用来表示与一个代码片段相关的问题的标记(<\warning>)。

  一下是一些doxygen自建的命令,可以在代码注释中加入

  @addtogroup 添加到一个组。
  @brief  概要信息
  @deprecated 已废弃函数
  @details  详细描述
  @note  开始一个段落,用来描述一些注意事项
  @par  开始一个段落,段落名称描述由你自己指定
  @param  标记一个参数的意义
  @code .. @endcode 包含一段代码
  @fn  函数说明
  @ingroup 加入到一个组
  @return  描述返回意义
  @retval  描述返回值意义
  @include 包含文件

3. 其他

  doxygen功能还是很强大的,对于c++和java的代码结构生成以及图标生成很好用;可以很方便的看到代码结构,对于c暂时没有生成出对应的图表,后续还需要继续研究下。 后续get到其他技能继续在后面补充

时间: 2024-10-07 09:18:01

doxygen 生成源码文档的相关文章

&lt;整理&gt; 使用Python Sphinx自动生成代码文档

使用Sphinx自动生成代码文档 参考来源: https://blog.csdn.net/sinat_29957455/article/details/83657029 https://www.cnblogs.com/xuzijie/p/9677621.html 欢迎讨论交流,如有侵权请联系本人! 版本信息 Python 3.6.8 :: Anaconda, Inc. Sphinx 1.8.4 前置步骤 安装Python和pip,使用pip安装Sphinx. 在项目目录中创建src文件夹,用来存

用doxygen+graphviz自动化生成代码文档(附详细教程)

一.引子 用这两个工具可以自动的遍历代码,并且产生代码文档,我们先来看看效果,然后放出这两个工具的下载地址. 二.工具的下载地址 doxygen:http://www.stack.nl/~dimitri/doxygen/download.html graphviz:http://www.graphviz.org/ 三.使用步骤 首先安装doxygen,然后解压下载好的graphviz.接着打开doxygen,按照我下面的图示进行操作就好了. 最后点run就可以了. 附上doxygen能识别的一些

ns3使用doxygen生成离线api文档

doxygen的维基介绍: Doxygen是一个编写软件参考文檔的工具.该文檔是直接写在源代码中,因此比较容易保持更新.Doxygen可以交叉引用文檔和源代码,使文件的读者可以很容易地引用实际的源代码. ns3的官方也有doxygen生成的文档,参见:ns3官方doxygen 但是由于网络或者其它原因,我们有本地离线访问的需求,于是doxygen就派上用场了.下面来看看怎么使用doxygen: 1. 官方的方法如下: ns-3 requires Doxygen version 1.5.4 or

代码文档生成工具-Doxygen生成CHM和RTF图文教程

Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,可以从一套归档源文件开始,生成chm格式的文档.本文主要讲解如何在winddows下安装doxygen. 1.下载doxygen-1.8.8-setup.exe,下载地址为: 1)官方地址:http://www.stack.nl/~dimitri/doxygen/download.html 2)华军软件:http://www.onlinedown.net/soft/117010.htm 2.下载graphviz,下载地址为

基于Doxygen_C语言代码文档一键生成的记录与规范(嵌入式适用)

下位机代码格式规范整合记录 注册 doxygen 账号获取doxygen 的 *.exe 执行文件 https://pan.baidu.com/s/1MF5v-Ts80BysmZtXSqONmg 提取码:l4br 进入Graphviz 首页下载Graphviz 软件*.mis 安装包  (可不选,但推荐) https://pan.baidu.com/s/1lIhc31LUvZNVK75r9ghtNA 提取码:12wo 安装.安装完成后: 打开Doxygen GUI frontend ,配置文档格

使用doxygen制作C代码文档

使用doxygen制作C代码文档 C 代码注释风格约定 行间注释 /*! * * 这里是注释 * */ 行内注释 <code here> /*! 这里是注释 */ doxygen 风格的宏 宏名可以是'\'或'@'后面跟宏名组成.如:\brief 或 @brief 表示一个简要说明在doxygen生成的html中, 前部分显示概要信息, 该信息后有个"更多" ,点击跳转到详细说明. 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏名 宏

使用doxygen、graphviz生成OpenSceneGraph文档

OpenSceneGraph是一款开源的c++三维引擎库,不过因为是开源,所以相关文档十分稀缺.虽然官网提供的源码可以直接生成doxygen文档,不过貌似不太好用,反正我是没有正确生成. 自己研究了一下用doxygen.graphviz生成OpenSceneGraph文档,并且最终成功生成相关文档,把过程整理一下,希望对大家有所帮助. 原料: doxygen-1.8.11-setup.graphviz-2.38, 这两款软件都是开源的,下载地址分别是: http://ftp.stack.nl/p

使用Doxygen生成net帮助文档

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

Ubuntu中利用Doxygen生成开源程序包的API文档

Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件.通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞泰坦尼克号同样的辛苦.大部分有用的批注都是属于针对函数.类型等等的说明.所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用您的程序代码的人而言将会减少许多的负担. 在Ubuntu下使用apt-get install命令即可安装doxygen命令行工具和相应的GUI工具,命令如下: sud