文档章节

EclipseforC/CPP 之配合 doxygen + graphviz 生成HTML代码文档

小代码2016
 小代码2016
发布于 2014/10/20 20:33
字数 1166
阅读 242
收藏 1

JAVA语言中的代码注释那是相当好的一个东西,尤其是使用了Eclipse之后,简直是程序员的福音。小弟前几天用了一下午的时间,经过在网上的查找以及我一点点的探索,终于搞定在windows平台下,使用 Eclipse for c/cpp + doxygen + graphviz 自动提示代码注释以及生成HTML格式的文档。

 

还不知道doxygen的同学,请自行百度/Google

 

声明:JDK以及mingw的安装和配置请自行解决,这里的测试以C语言为主

 

使用到的软件:

jdk

mingw

eclipse for c/cpp

doxygen

eclox

graphviz

 

一、安装doxygen、graphviz以及eclipse插件:eclox

doxygen、graphviz的安装比较简单,就是典型的下一步,不再赘述。

然后就是在eclipse【实际上是 Eclipse IDE for C/CPP ,以下简称为 eclipse】中安装doxygen的插件 eclox了,它的下载地址 http://home.gna.org/eclox/

至于 eclipse 安装插件的方法,这里推荐使用 link 安装方法,具体的作法不再多说

安装好之后,还要做一些设置:

1、window->preferences->doxygen

在右侧点击 Add,添加doxygen安装目录的bin目录

这一步的目的是为了在eclipse中使用和本地安装的doxygen是同一个

2、window->preferences->C/C++->Editor

在右侧最下方的 Workspace default中选择:Doxygen

如果没有这一步的话,是不会像在eclipse中对JAVA的文档注释支持一个,输入/**回车之后,会自动出现 @param @return 等

 

二、代码注释的书写:

在doxgyen中,有很多类似于JAV中@param等注解一样的特殊命令字,实际上,当我们使用doxgyen的特殊命令字的时候,如果使用@param强制声明,那看起来和JAVA的注解好像也没有什么不一样,这其实就是doxygen对于java-dox的兼容了。

当我们创建好一个头文件后,应当在文件的前面加上:@file,否则在生成的HTML文档中,是不会出现该文件的

当我们写好一个函数后,比如:

Stu stu_create(int stu_id, char stu_name[20], double stu_score_math,

double stu_score_english, double stu_score_computer);

那么就可以像在eclipse中写JAVA注解一样写C语言的注释了。在函数的上面一行输入:/**,回车之后,你就会发现:

/**

 * 

 * @param stu_id

 * @param stu_name

 * @param stu_score_math

 * @param stu_score_english

 * @param stu_score_computer

 * @return

 */

这些全是自动出现的,至于具体的注释怎么写,就看你自己了

其中param是参数, return是返回值,还有其它的特殊命令字,可以看doxygen的帮助文档:Doxygen Documentation,这个文件可以在开始菜单中看到

 

三、工程的设置以及HTML文档的生成:

在项目上右键新建,选择 Other doxyfile,

基本设置

 

Basic页面中的设置:

 

Project

Name:项目名称,多个单词需要用双引号括起来,不可以是中文,否则运行出错

Version or Identifier:项目的版本

 

Output Formats:

选中HTM中的with frames and navigation tree,否则输出中没有搜索

取消LaTex

选中Man Pages

 

Mode:

选中documented entities onlyIncluce cross-refrenced source code in the output,可以在输出中查看函数定义在第几行

 Optimize results for 中选择语言

 


中文支持设置 

 其实doxygen 是支持中文的,只是我们需要设置一下而已。另外,如果是需要制作CHM格式的文档,也是需要修改编码的

Advanced 页面中,在Custom中输入enco,把 Doxyfile Encoding  Input Encoding 的值都修改为源代码的编码



custom的中输入output,把Output Language 的值修改为 Chinese

函数调用示意图设置【需要安装graphviz

 

custom中输入:call

Call Graph  Caller Graph 的值都修改为 YES


 


custon同输入 dot

Have DOT 设置为Yes

DOT Path 的值设置为graphvizbin 目录 



四、生成文档

 现在可以按Ctrl+S保存这个doxyfile文件,然后在工具栏上单击那个@符号,或者可以在工程上右键,也是有的,名字是 Build Documention,如果是第一次创建文档,它会让你选择一个deoxyfile文件

如果没有指定输出目录的话,那么在eclipse中,它默认是在当前目录下生成一个html目录,在html目录下,会有一个index.html文件,用浏览器打开就可以看到文档了


晒一下我的文档:

 


© 著作权归作者所有

小代码2016
粉丝 46
博文 328
码字总数 153495
作品 0
安阳
程序员
私信 提问
doxygen学习笔记 2012-02-28

Doxygen把自己定义为“Source code documentation generator tool”(源代码文档生成工具)。Doxygen提供一种维护文档的机制。Doxygen可以做下面的事情: 1、从已经文档化的代码中抽取并生成...

qbcs
2012/06/08
498
1
使用Doxygen构建文档系统

如果您这次还没来得及使用老式的Help Workshop为您的Web应用构建文档系统的话,那么,何不尝试一下Doxygen,需知"The proof of the pudding lies in the eating"。 Doxygen是什么? Doxygen是...

红薯
2009/02/11
2.8K
2
考不上三本也能实现C++编译器——前言 - 知乎

你现在所阅读的并不是第一篇文章,你可能想看目录和前言。 前言 在GacUI1.0的功能马上就要做完的时候,我曾经提出过要把以前的垃圾C++文档生成器(类似doxygen)重新做一遍。所以就开了这个项...

vczh的日常
前天
0
0
Doxygen 1.7.0 发布,文档生成工具

Doxygen 是一个C++, C, Java, Objective-C、Python、IDL (CORBA 和Microsoft flavors)、Fortran、VHDL、PHP、C#和D 语言的文档生成器。可以运行在大多数类Unix系统,以及Mac OS X操作系统和M...

红薯
2010/06/15
760
0
Doxygen详细介绍

1 序言 为代码写注释一直是大多数程序员有些困扰的事情。当前程序员都能接受为了程序的可维护性、可读性编码的同时写注释的说法,但对哪些地方应该写注释,注释如何写,写多少等这些问题,很...

乐搏学院
2016/12/08
45
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部