Tools:使用Doxygen生成函数调用关系

参考链接:
https://zhuanlan.zhihu.com/p/59762344


安装Doxygen工具:

sudo apt install doxygen

下面以pluma 源码为例进行说明。

下载源码:

apt source pluma

生成 Doxygen文件:

在源码目录下,使用doxygen -g 命令生成Doxygen文件。

adams@ubuntu:~/pluma$ ls
pluma-1.24.0  pluma_1.24.0-1.debian.tar.xz  pluma_1.24.0-1.dsc  pluma_1.24.0.orig.tar.xz
adams@ubuntu:~/pluma$ cd pluma-1.24.0/
adams@ubuntu:~/pluma/pluma-1.24.0$ ls
AUTHORS     ChangeLog     COPYING  debian  gla11y.mk  its          makepot  pixmaps  pluma      po      tests  update-authors.pl
autogen.sh  configure.ac  data     docs    help       Makefile.am  NEWS     plugins  pluma.pot  README  tools
adams@ubuntu:~/pluma/pluma-1.24.0$ doxygen -g


Configuration file 'Doxyfile' created.

Now edit the configuration file and enter

  doxygen Doxyfile

to generate the documentation for your project

adams@ubuntu:~/pluma/pluma-1.24.0$ ls
AUTHORS     ChangeLog     COPYING  debian  Doxyfile   help  Makefile.am  NEWS     plugins  pluma.pot  README  tools
autogen.sh  configure.ac  data     docs    gla11y.mk  its   makepot      pixmaps  pluma    po         tests   update-authors.pl
adams@ubuntu:~/pluma/pluma-1.24.0$

配置Doxygen文件:

内容 默认值 修改后 操作说明
HAVE_DOT YES YES 无需操作
EXTRACT_ALL NO YES 修改默认值
EXTRACT_PRIVATE NO YES 修改默认值
EXTRACT_STATIC NO YES 修改默认值
CALL_GRAPH NO YES 修改默认值
OPTIMIZE_OUTPUT_FOR_C NO YES 修改默认值
INPUT INPUT = /home/adams/pluma/pluma-1.24.0/pluma /home/adams/pluma/pluma-1.24.0/pluma/smclient /home/adams/pluma/pluma-1.24.0/pluma/dialogs 源码文件所在的路径

其中:

OPTIMIZE_OUTPUT_FOR_C 是针对源码是.c格式的情况。默认是针对cpp文件。

INPUT 是源码文件所在目录,上面没有列出所有源码文件。

比如说pluma-1.24.0/plugins目录就没有分析。


执行 doxygen Doxyfile 命令会生成相应的文件。

adams@ubuntu:~/pluma/pluma-1.24.0$ ls
AUTHORS     ChangeLog     COPYING  debian  Doxyfile   help  its    Makefile.am  NEWS     plugins  pluma.pot  README  tools
autogen.sh  configure.ac  data     docs    gla11y.mk  html  latex  makepot      pixmaps  pluma    po         tests   update-authors.pl
adams@ubuntu:~/pluma/pluma-1.24.0$ cd latex/ 

在生成的latex目录下执行make 命令。就会生成最终文件。
整体文件为:refman.pdf


make 过程如果报错:make: pdflatex: Command not found

可以参考:报错: make: pdflatex: Command not found


编译完成:

LaTeX Warning: There were multiply-defined labels.

 )
(see the transcript file for additional information){/usr/share/texlive/texmf-d
ist/fonts/enc/dvips/base/8r.enc}</usr/share/texlive/texmf-dist/fonts/type1/publ
ic/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/ams
fonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/c
m/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy1
0.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb><
/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/sh
are/texlive/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/share/texlive/t
exmf-dist/fonts/type1/urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fon
ts/type1/urw/courier/ucrro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw
/helvetic/uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uh
vb8ac.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></
usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvro8a.pfb>
Output written on refman.pdf (1339 pages, 15984990 bytes).
Transcript written on refman.log.
adams@ubuntu:~/pluma/pluma-1.24.0/latex$ 

效果图:
Tools:使用Doxygen生成函数调用关系_第1张图片
图片看不清的,但是生成的pdf文档是很清晰的。
Tools:使用Doxygen生成函数调用关系_第2张图片

你可能感兴趣的:(Tools)