0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dev Containersで爆速C++環境構築

Last updated at Posted at 2024-11-09

要約

  1. 用意するもの:VScode、Docker
  2. VSCodeでDev Containers 拡張機能をインストール
  3. 検索窓から、>Dev Containers: Try...を実行して、環境構築したい言語を選択
  4. Enjoy!

はじめに

C++の学習をしていて、実行環境が必要になった。
コンテナ型を用いた環境構築には

  • どのOSでも挙動を統一できる
  • OS本体を汚さずに済む
  • 仮想化の中では軽量
  • イメージサイズが小さい

という利点があるそうなので、使ってみることにした。

※初学者なので、つたない部分があるが、そこは大目に見てほしい。

方法

必要なソフト

  • VSCode
  • Docker Desktop (CEだとTry...は動かない?*)
  • (WindowsならWSL2)
  1. VSCodeの拡張機能タブで、Dev Containers(またはRemote Developmentバンドル)をインストール
  2. F1(検索ボックスに>を入れる) -> Dev Containers: Try...を実行
  3. C++を選択
  4. 1~2分ほどで2つのイメージががビルドされ、VSCodeからアクセスできる

その他

書式

設定(Ctrl + ,)から

  • Clang_format_fallback Style:好きなものを選択
  • Format On Paste, Format On Save:有効

各種ツールのインストール

定番ツールはF1 -> DevContainers: Configure Container Features...でインストールできる
Dockfile、docker-compose.yml、devcontainers.jsonでコマンドを動かすこともできる
devcontainers.jsonでpostStartCommandを指定すると、更新するたびにビルドをしなくて済むので良いと思った
拡張機能は右クリックからdevcontainers.jsonに追加することで、イメージをビルドするときも自動でインストールされる。

デバッグオプションの変更

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build Main",
            "type": "cppbuild",
            "command": "g++",
+            "args": [
+              "-g",
+              "${workspaceFolder}/*.cpp", 
+              "-o",
+              "${workspaceFolder}/main.out"
+            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

感想...異なるPCで同じ実行環境を用意できて、メインPCと依存関係もないので、保守性が高いと感じました。
今回は作業フォルダをすべてvolumeイメージにしてマウントする方法でしたが、ほかにもメインPCのフォルダをbindマウントする方法もあり、そちらも試してみたいです。

参考

複数ファイルからなるC++プログラムをVSCodeで実行する手順の備忘録
https://terumikanblog.com/vscode/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?