程序员很多时候都在阅读代码,平时可以在Emacs这样的编辑器中读代码,但有时候在网页上浏览代码也很有乐趣,比如在iPad的Safari里。
Doxygen 本来是一个文档工具,但是用来阅读代码也很给力。Doxygen 在生成文档的时候,我建议对每一个项目维护一份配置文件。为了避免手动编写这个配置文件,有人写了一个图形化的配置工具,在 ubuntu 下可以直接从源里安装:
$ sudo aptitude install doxygen-gui
另外,推荐同时安装 graphviz,这样doxygen可以使用dot工具生成类的调用关系图,非常利于阅读代码。
装完之后,运行 doxywizard
,就可以在GUI里设置项目参数。
根据使用经验,需要配置这些内容:
Project
设置输出目录
OUTPUT_DIRECTORY = /home/www/proj
不要输出完整的文件名,只要保证唯一就可以了
FULL_PATH_NAMES = NO
用typedef的名字替代原来的结构名
TYPEDEF_HIDES_STRUCT = YES
Build
解析出所有的语法结构,否则没有documented过的结构是不解析出来的。
EXTRACT_ALL = YES
在导出的文档中显示源代码的目录结构
SHOW_DIRECTORIES = YES
Input
设置源代码的目录,空格分隔多个目录
INPUT = /home/jqian/src/proj1 \
/home/jqian/src/proj2
设置你想解析的文件后缀,可以使用通配符 *
,空格分隔多种文件类型
FILE_PATTERNS = *.c \
*.cc \
*.cpp \
*.java \
*.h \
*.hh \
*.hpp \
*.php \
*.inc \
*.py
递归解析INPUT的子目录内容
RECURSIVE = YES
去掉不需要解析的子目录,比如那些build目录和cvs目录等等,可以使用通配符 *
,空格分隔多个目录
EXCLUDE_PATTERNS = */linuxR_x86/* \
*/AMD64/* \
*/solaris/* \
*/CVS/*
Source Browser
设置显示高亮过的源代码,因为我们本来就是希望用doxygen来阅读代码的
SOURCE_BROWSER = YES
在文档中同样显示源代码片段
INLINE_SOURCES = YES
列出函数reference信息
REFERENCED_BY_RELATION = YES
列出函数调用信息
REFERENCES_RELATION = YES