✅ Doxygenで全体のクラス図を生成する方法
cppのクラス図を自動生成してほしいので、DoxygenをWSLを使用して生成してみることにしました。
以下説明。
🔸 1. 事前準備
(1) 必要なツール
- Doxygen(必須)
- Graphviz(DOT) → クラス図やコールグラフなどを画像として生成するのに必須
(2) インストール(Ubuntu/WSLの場合)
sudo apt install doxygen graphviz
Windows でも公式サイトからインストーラーを使えばOKです。
🔸 2. Doxygen設定ファイル(Doxyfile)を作成
doxygen -g
で Doxyfile
が生成されるので、以下の設定を行います。
🔸 3. Doxyfile設定例(重要ポイント)
【クラス図生成の必須設定】
HAVE_DOT = YES
DOT_GRAPH_MAX_NODES = 100 # ノード数上限(多いと重いので注意)
CLASS_DIAGRAMS = YES
UML_LOOK = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
【全体の関係も生成したい場合(推奨)】
DOT_MULTI_TARGETS = YES
INTERACTIVE_SVG = YES # SVGならブラウザで拡大縮小も便利
【日本語対応(推奨)】
OUTPUT_LANGUAGE = Japanese
🔸 4. 実行
doxygen Doxyfile
🔸 5. 結果
-
html/
フォルダにindex.html
が生成されます。 - そこから「クラス一覧」や「クラス階層図(Class Hierarchy)」を辿ると、クラス間の継承関係・依存関係がグラフィカルに表示されます。
- Graphvizで生成されたUML風クラス図(SVG/PNG)もリンクで埋め込まれます。
✅ 生成される「全体クラス図」と「部分クラス図」
図の種類 | 内容 |
---|---|
クラス階層図 | 全体のクラス継承ツリー(Base → Derived) |
クラス図(個別) | そのクラス単体のメンバ関係・継承関係・依存関係 |
ファイル依存関係図 | ヘッダ・ソース間のinclude関係 |
コールグラフ | 関数の呼び出し元・呼び出し先(設定次第で呼び出し元グラフも生成可能) |
✅ 注意点
-
プロジェクトが大規模な場合、DOT_GRAPH_MAX_NODESを増やすと処理が重くなります。
- 例:
DOT_GRAPH_MAX_NODES = 1000
だと大量に生成されるので最初は 100 くらいで十分。
- 例:
- もし大きな全体図が重い場合は、個別のクラス図だけ出力する設定も可能です。
- Graphvizが必須なのでインストール漏れに注意してください(Windowsなら環境変数の設定もお忘れなく!)。
✅ まとめ
✅ Doxygen + Graphviz でクラス図(UML風)も全体図も生成OK
✅ CLASS_DIAGRAMS = YES
で有効化
✅ UML_LOOK = YES
でUMLライクな見た目に
✅ 日本語コメントも表示可能
✅ 複雑な依存関係もGraphvizで綺麗に描画できる