Doxygen是一種開源跨平臺的,以類似JavaDoc風格描述的文檔系統,完全支持C、C++、Java、Objective-C和IDL語言,部分支持PHP、C#。註釋的語法與Qt-Doc、KDoc和JavaDoc兼容。Doxygen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。
官網:http://www.doxygen.nl/
百科:https://baike.baidu.com/item/Doxygen/1366536?fr=aladdin
Graphviz(Graph Visualization)是1990年代初誕生於AT&T的Bell實驗室的一個開源的 (EPL授權)、跨平臺 的 腳本自動化繪圖軟件工具。
Graphviz使用一種稱爲dot語言的DSL(Domain Special Language)語言編寫Script File腳本文件,然後使用Layout佈局引擎解析這個Script File腳本文件完成 自動化佈局渲染 。
Doxygen和Graphviz結合使用, 完美的讓代碼以網頁、圖形、調用關係圖圖展現出來。方便閱覽代碼。
此方法優勢: 不需要編譯代碼。根據需求,配置好參數,可利用命令直接輸出結果。
開發環境: ubuntu
$ sudo apt-get install graphviz doxygen doxygen-gui
待安裝完成後, 通過命令查看:
$ doxygen -v
1.8.11
執行用命令,將出現如下界面:
$ doxywizard
填寫圖中出現標註部分。點擊【Next】
根據代碼語言,選擇對應項目。
按圖中所示,設置對應項目。
這裏是用到graphViz關鍵地方。
語言選擇中文
[Expert]往下拉到[dot], DOT_PATH選擇爲/usr/bin。點擊【Next】
此處可點擊【Run doxygen】, 輸出框會顯示輸出內容。
或者關閉窗口,保存配置項,通過命令生成文件。關閉窗口跳出如下框圖:
選擇【Save】,保存配置文件Doxyfile。
執行命令:doxygen Doxyfile, 待運行結束。
Png文件就是保存的調用關係圖, html網頁文件展示代碼及關係圖所有信息。可直接打開html網頁文件查看內容。關係圖示例:
將源碼生成調用關係圖還有很多方式,比如:
1. drafter 在iOS項目中自動生成函數調用關係圖
https://blog.csdn.net/allanGold/article/details/89186582
2. 用Graphviz + CodeViz生成C/C++函數調用圖
https://www.cnblogs.com/lanxuezaipiao/p/3450201.html
3. source insight
利用[Relation]功能,可展示幾種關係圖:樹形,左右,上下