3.0 KiB
3.0 KiB
C/C++の開発環境
Linter
TODO: TBD
テスト
TODO: TBD
Doc(ドキュメンテーション)
C / C++ の自動ドキュメンテーションをしたい場合、 Doxygen(+Graphviz)が圧倒的スタンダードで、最もおすすめです。
- C / C++ / Java / Python などメジャー言語に対応
- コメントを解析して HTML / PDF / Markdown などへ出力
- 関数・構造体・クラスの関係図(UML・依存グラフ)を自動生成
- C++ テンプレートや名前空間にも対応
- Graphvizを入れれば図が自動で描かれる
環境構築
Macの場合
brew install doxygen graphviz
Linux(Ubuntu)の場合
sudo apt install doxygen graphviz
Dockerを活用する
Dockerイメージをビルドする
docker build -f Dockerfile.doxygen -t dev-doxygen .
Linuxでコマンドを実行する
mkdir -p docs
# docker run --rm -v "$(pwd)":/work -w /work/docs dev-doxygen <コマンド>
# 初期化コマンド
docker run --rm -v "$(pwd)":/work -w /work/docs dev-doxygen doxygen -g
# ドキュメントを生成する
docker run --rm -v "$(pwd)":/work -w /work/docs dev-doxygen doxygen Doxyfile
doxygen 使い方
設定ファイルを生成
doxygen -g
Doxyfileが作成される
ドキュメント生成
doxygen Doxyfile
- html/ に HTML ドキュメント
- latex/ に PDF 用のファイルが出力される(必要なら make)
CI / CDによる実行
Git Actionsで生成の場合
- name: Generate Doxygen docs
run: doxygen docs/Doxyfile
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/html
Doxyfileの設定
docs/Doxyfileを設定する
# ドキュメント化したいディレクトリ
INPUT = ../src ../include
# INPUT 内を再帰的に探索
RECURSIVE = YES
# OUTPUT は docs/html に出す
OUTPUT_DIRECTORY = ./html
Docコメントの書き方
C言語の場合
/**
* @brief 二数の最大値を返す関数
* @param a 整数
* @param b 整数
* @return 最大値
*/
int max(int a, int b);
C++言語の場合
/**
* @class User
* @brief ユーザー情報を扱うクラス
*/
class User {
public:
/**
* @brief コンストラクタ
*/
User(std::string name, int age);
/**
* @brief 名前を取得する
*/
std::string getName() const;