参考文章:

http://www.fmddlmyy.cn/text21.html

http://www.cnblogs.com/duguguiyu/archive/2008/06/29/1231852.html  ---入门介绍

https://www.ibm.com/developerworks/cn/aix/library/au-aix-graphviz/index.html

1 Doxygen简介

1.1 What to do?

使用Doxygen生成文档,主要是两件事:

  1. 写一个配置文件(Doxyfile),一般用Doxywizard生成后,再手工修改[不建议使用,不直观,比较麻烦]。或者可以用辅助的GUI工具帮助书写,你只需要改几个选项,点几下按钮就可以了(在下面有介绍)。
  2. 按照Doxygen的约定,将代码“文档化”。

如果已经有配置文件(Doxyfile),执行命令:doxygen Doxyfile,就会输入文件、输出目录、参数等都是在Doxyfile中配置好的,在/doc/html/index.html中查看。

1.2 What you want?

Doxygen的输出格式主要有HTML、LATEX、RTF等:

  • Doxygen在输出HTML文档时,可以自动准备用于制作CHM的项目文件(.hhp)、目录文件(.hhc)和索引文件(.hhk)。用HTML Help Workshop中的CHM编译器(hhc.exe)编译后生成CHM文件。
  • Doxygen在输出LATEX文档的同时准备了转换到pdf格式的makefile。只要系统安装了合适的TEX工具,就可以从LATEX文档生成pdf文档。
  • Doxygen输出的RTF格式,已经针对Word作了优化,可以较好地转换到Word文档。

1.3 install

如果你电脑里可能还没有doxygen,我们先来安装一下:

sudo apt-get install doxygen doxygen-gui  //就是上面提到的GUI,不用再写Doxyfile,用GUI工具。
[sudo] password for wj:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libopencc1
Use 'apt-get autoremove' to remove it.
Suggested packages:
doxygen-doc
The following NEW packages will be installed:
doxygen-gui
upgraded, newly installed, to remove and not upgraded.
Need to get kB of archives.
After this operation, kB of additional disk space will be used.
Get: http://cn.archive.ubuntu.com/ubuntu/ trusty/universe doxygen-gui amd64 1.8.6-2 [279 kB]
Fetched kB in 0s ( kB/s)
Selecting previously unselected package doxygen-gui.
(Reading database ... files and directories currently installed.)
Preparing to unpack .../doxygen-gui_1.8.6-2_amd64.deb ...
Unpacking doxygen-gui (1.8.-) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up doxygen-gui (1.8.-) ...

总之,主要是doxygen本体和它的gui模块。如果你不确定,请用这个查一下。

j@wj-Inspiron-5437:~$ apt-cache search doxygen-gui
doxygen-gui - GUI configuration tool for doxygen

拿以难读著称的lsd-slam举个例子。

[1]首先,建个文件夹,把lsd-slam的代码拷下来:

git clone https://github.com/tum-vision/lsd_slam.git

[2]在该文件夹下开一个doc文件夹,把一会儿生成的文档放里头:

mkdir doc;
cd doc

[3]输入doxywizard调出gui面板。

wj@wj-Inspiron-5437:~/Downloads/lsd_slam/doc$ doxywizard

然后就会出一个面板啦...

step1---Wizard

1.“Project”:

[1]Doxygen工作目录填写,即doc所在路径。

[2]Project name那些东西随意,可以不设。

[3]重要的是源代码目录source code directory,请把它设到lsd_slam_core/src下,并钩上Scan recursively,表明我们要扫描子文件夹。

[4]输出文件夹设成当前目录./即可,也就是/home/wj/Downloads/lsd_slam/doc

2.进入下一个版块“Mode”,点“Next”。选择All Entities,可以输出相对完整的功能,是否包含源代码看自身情况;在下面选择好自己的语言,既然咱们用c++,保持默认的就可以了。

3.“Output”:如果你需要输出chm格式,勾选chm,没有要求的话html就可以了

4.Diagrams:选择使用GraphViz包,来输出UML,GraphViz包可以帮助建立一些树状视图。

step2---Expert

需要首选确定你所输出的语言,很重要的是INPUT_ENCODING项,如果使用的为微软默认字符集请填写GBK,不然目录乱码,当前选择UTF-8,输出语言选择的是Chinese.

......以上的配置基本情况下就可以啦,剩下的就不在这里赘述了,感兴趣可以参考:http://www.cnblogs.com/chenyang920/p/5732643.html

step3---Run

准备工作完成啦!切到Run,点“Run doxygen",等文档生成完。然后点“show html output",就可以在浏览器里看到文档啦。如果你下一次想直接看,直接打开doc/html/index.html就可以了!

看这个比看源代码效果更高哦!

附:原理图

2 Graphviz简介

Graphviz是一个图形可视化软件。Doxygen使用Graphviz生成各种图形,例如类的继承关系图、合作图,头文件包含关系图等。适用于大多数平台的二进制文件可以在 Graphviz官网 上找到,AIX 二进制文件可以在 perzl.org 上找到。Doxygen使用了Graphviz的布局引擎dot,所以在文档中将其称作dot。

install

$ sudo apt-get install graphviz graphviz-doc    //这样会安装dot语言的执行文件,执行文件路径在/usr/bin/dot

可以来个测试:

[1]自己创建一个test.dot  (更多例子可以参见官方文档)---dot

digraph G {
subgraph cluster0 {
node[style=filled, color=white];
style=filled;
color=lightgrey;
a0->a1->a2->a3;
label="process #1";
} subgraph cluster1 {
node[style=filled];
color=blue;
b0->b1->b2->b3;
label="process #2";
} start->a0;
start->b0;
a1->b3;
b2->a3;
a3->end;
b3->end; start[shape=Mdiamond];
end[shape=Msquare];
}  

[2]执行命令:

$ dot -Tpng test.dot -o test.png //都是用来生成图片,选择其中一个即可。
$ dot -Tsvg test.dot -o test.svg
$ dot -Tpdf test.dot -o test.pdf

[3]结果:

安装doxygen(一个自动文档生成工具)+Graphviz图形可视化软件的更多相关文章

  1. Doxygen自动文档生成工具在Eclipse中的集成及使用举例

    你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的 ...

  2. (转)Doxygen文档生成工具

    http://blog.csdn.net/lostaway/article/details/6446786 Doxygen 是一个支持 C/C++,以及其它多种语言的跨平台文档生成工具.如同 Java ...

  3. 文档生成工具doxygen+图像生成工具GraphViz

    文档生成工具doxygen+图像生成工具GraphViz 虽然jdk自带的javadoc也很好用,不过使用doxygen+GraphViz 的组合可以生成许多强大的图(类图.协作图.文件包含/被包含图 ...

  4. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧 ...

  5. Sandcastle----强大的C#文档生成工具

    最近客户索要产品的二次开发类库文档,由于开发过程中并没有考虑过此类文档,而且项目规范比较,持续时间比较长,经手人比较多,还真是麻烦,如果人工制作文档需要是一个比较大的工程.还好有这个文档生成工具,能够 ...

  6. 使用Objective-C的文档生成工具:appledoc

    使用Objective-C的文档生成工具:appledoc 前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Ja ...

  7. 使用Objective-C的文档生成工具

    前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象Java语言本身就自带javadoc命令,可以从源码中抽取文档.今 ...

  8. Markdown 文档生成工具

    之前用了很多Markdown 文档生成工具,发现有几个挺好用的,现在整理出来,方便大家快速学习. loppo: 非常简单的静态站点生成器 idoc:简单的文档生成工具 gitbook:大名鼎鼎的文档协 ...

  9. python文档生成工具:pydoc、sphinx;django如何使用sphinx?

    文档生成工具: 自带的pydoc,比较差 建议使用sphinx 安装: pip install sphinx 安装主题: 由各种主题,我选择常用的sphinx_rtd_theme pip instal ...

随机推荐

  1. 4.ClassLink - 一种新型的VPC 经典网络的连接方式

    阿里云CLassLink文档地址:https://help.aliyun.com/document_detail/65412.html?spm=a2c4g.11186623.2.9.41a25a07F ...

  2. NETIF_F_LLTX 的属性

    在bond初始化的时候,我们可以看到如下属性: /* don't acquire bond device's netif_tx_lock when transmitting */     bond_d ...

  3. springboot 项目 注意事项

    SpringBoot出现下列错误. Your ApplicationContext is unlikely to start due to a @ComponentScan of the defaul ...

  4. python异常处理方法

    异常是指程序中的例外.违例情况,比如序列的下标越界.打开不存在的文件.空引用异常等.通过捕获异常并进行正确处理,可以提高程序的健壮性.如果没有代码处理异常,Python解释器将输出相关异常信息并终止程 ...

  5. .Net编译原理简单介绍

    首先简单说一下计算机软件运行.所谓软件运行,就是一步一步做一些事情.计算机只认识0和1.给计算机下命令,只能是0与1的方式,确切的说,其实是CPU只认识0和1,因为软件运行是CPU控制的.人直接操作0 ...

  6. Idea使用Maven异常 --- Maven网络代理设置

    在conf/setting.xml和m2/repository/setting.xml中加入: <proxies> <!-- proxy | Specification for on ...

  7. 18.1利用socket .io 实现 editor间代码的同步

    首先,我们想实现在同一个页面editor 大家同时编辑 同步 所以能 我们需要这个url 作为我们 session id 或者叫聊天室的roomid 或者 反正就是保证他们在同一个list里面 就是 ...

  8. 为了显示此页面,Firefox 必须发送将重复此前动作的数据(例如搜索或者下订单)

    火狐浏览器重新加载页面出现下面提示,必须要点击“重新发送”才能完成刚才的请求: 这个是火狐的一个提示功能主要是防止同一页面的数据反复提交: 解决方法: 不要用location.reload();来刷新 ...

  9. 闹钟AlarmAndMusic 和支持播放音乐效果《IT蓝豹》

    闹钟AlarmAndMusic 和支持播放音乐效果的,上下滑动调整时间和页面旋转风车效果,由于制作的gif有些问题,效果不明显,欢迎下载使用看看真实的效果.本例子主要由AlertActivity和Al ...

  10. ubuntu14配置opencv3.4.1(转)

    网站:https://blog.csdn.net/a1429331875/article/details/31539129 写此博客的目的是为了方便大家的学习,我是搞了半天,通过上网查找资料才成功的. ...