🍣
モダンC++ 開発環境テンプレートのご紹介
C++は1983年から開発が始まったプログラミング言語であり、開発環境や機能に関わる情報もインターネット上に溢れています。しかし、個人的には環境構築の複雑さとエラーメッセージがとても分かりずらいなのが2大障壁になって導入ハードルが高いと思っています。
本テンプレートでは、VSCodeの機能を活用し、環境構築の複雑さを少しでも緩和することを目標とします。
テンプレート概要
c = Add(a, b) 関数の実装とTestingのみが含まれる簡易なプログラムです。
使用ツール類
エントリーポイント
アプリケーション実行用のエントリーポイントは、cliディレクトリに配置します。
テスト実行用のエントリーポイントはGoogle testで管理され、testの本体はtestsディレクトリに配置します。
事前インストール
- Ubuntu (Ubuntu 22.04 on WSL / Azure VM ubuntu-24_04-ltsで検証)
- VS Code
- Docker cli
- Dev containers extension
使い方
Clone
git clone https://github.com/akutsu-kei/cpp-dev-template.git
cd cpp-dev-template
アプリケーション実行
docker compose up run --build
# run-1 | Hello, World!
# run-1 | 1 + 2 = 3
# run-1 | OpenCV version: 4.5.4
テスト実行
docker compose up test --build
# test-1 | [==========] Running 1 test from 1 test suite.
# test-1 | [----------] Global test environment set-up.
# test-1 | [----------] 1 test from AddTest
# test-1 | [ RUN ] AddTest.add
# test-1 | [ OK ] AddTest.add (0 ms)
# test-1 | [----------] 1 test from AddTest (0 ms total)
# test-1 |
# test-1 | [----------] Global test environment tear-down
# test-1 | [==========] 1 test from 1 test suite ran. (0 ms total)
# test-1 | [ PASSED ] 1 test.
デバッグ
1. ディレクトリをVSCodeで開く
2. Dev containerを起動する
F1キーを押して、画像のコマンドを実行
cpp.Dockerfileの記述通りにビルドしたイメージが起動され、.devcontainer.jsonの記述通りにVSCodeが起動されます。.devcontainer.jsonでは、インストールするVSCode extensionや起動時の自動実行コマンドなどが設定できます。
3. アプリケーションのデバッグ実行
Run & Debugより、アプリケーションのデバッグ実行
tasks.jsonの記述通りにCMake/makeされ、launch.jsonの記述通りにバイナリが起動され、デバッグシンボルが読み込れます。
4. テストのデバッグ実行
同様にして、テストのデバッグ実行
変数Watch, Callstack, Memory dump, Disassemblyも閲覧可能です。
ここまで見れればVSCodeで全てできるかなーと。
開発時のフロー
(後で書きます。多分。。)
Discussion