Doxygen+Graphviz生成函数调用流程图

来源:互联网 发布:文字编辑美化软件 编辑:程序博客网 时间:2024/05/22 18:56

Doxygen

简介

Doxygen是一个C++、C、Java、Objective-C、Python语言的文檔生成器。可以在大多数类Unix的系统上运行,以及Mac OS X操作系统和Microsoft Windows。

下载源码并编译

地址

下载源码或者压缩包均可http://www.stack.nl/~dimitri/doxygen/index.html

编译方法

bash-2.05$ cd doxygenbash-2.05$ ./configure –prefix=/home/user1/binbash-2.05$ makebash-2.05$ make install

Graphviz

简介

Graphviz的是AT&T Labs Research开发的图形绘制工具,他可以很方便的用来绘制结构化的图形网络,支持多种格式输出,生成图片的质量和速度都不错.Graphviz本身是开源的产品,下载可以到 这里,以及他的演示界面 Graphviz在windows上和Linux上都可以顺利运行.

下载源码并编译

地址

下载源码或者压缩包均可http://www.graphviz.org/

编译方法

bash-2.05$ cd graphvizbash-2.05$ ./configure –prefix=/home/user1/binbash-2.05$ makebash-2.05$ make install

使用 doxygen 生成文档

使用 doxygen 生成源代码的文档需要执行三个步骤。

生成配置文件

在 shell 提示上,输入命令 doxygen -g。这个命令在当前目录中生成一个可编辑的配置文件 Doxyfile。可以改变这个文件名,在这种情况下,应该调用 doxygen -g user-specified file name

bash-2.05b$ doxygen -gConfiguration file 'Doxyfile' created.Now edit the configuration file and enter  doxygen Doxyfileto generate the documentation for your projectbash-2.05b$ ls DoxyfileDoxyfile

编辑配置文件

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

  1. 工程配置

    • 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. 生成图形和图表
    在默认情况下,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 会生成协作图(还有继承图),显示各个类成员(即包含)及其继承层次结构。
  3. 从文档生成过程中排除特定文件或目录

    • 在 Doxyfile 中的 EXCLUDE 标记中,添加不应该为其生成文档的文件或目录(以空格分隔)。
    • 因此,如果提供了源代码层次结构的根,并要跳过某些子目录,这将非常有用。
    • 例如,如果层次结构的根是 src_root,希望在文档生成过程中跳过 examples/ 和 test/memoryleaks 文件夹
  4. 文档输出格式
    除了 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 输出)。

运行 doxygen

  • 在 shell 提示下输入 doxygen Doxyfile(或者已为配置文件选择的其他文件名)运行 doxygen。
  • 在最终生成 Hypertext Markup Language(HTML)和 Latex 格式(默认)的文档之前,doxygen 会显示几个消息。
  • 在生成文档期间,在 OUTPUT_DIRECTORY 标记指定的文件夹中,会创建两个子文件夹 html 和 latex。
0 0
原创粉丝点击