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$ 

效果圖:
在這裏插入圖片描述
圖片看不清的,但是生成的pdf文檔是很清晰的。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章