參考鏈接:
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
文檔是很清晰的。