10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C言語開発環境をDocker+VS Codeで構築する

Last updated at Posted at 2022-05-04

環境

  • Windows 11 WSL2 Debian bullseye
  • Docker version 20.10.11
  • VS Codeバージョン: 1.66.2

VS CodeにはRemote - Containers 拡張機能をインストールしておきます。ほかは必要ありません。

手順

DockerでC言語を実行

まずDockerfileを用意します。

Dockerfile
FROM debian:bullseye-slim
WORKDIR /app

RUN apt-get update && apt-get install -y \
    git \
    gcc \
    gdb \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

CMD /bin/sh -c "echo '準備完了' && sleep infinity"

apt-getはお好みでbuild-essentialで必要なものをまとめて入れてもいいと思います。

適当なプログラムを記述します。

main.c
# include <stdio.h>

int main()
{
  printf("Hello, world.\n");

  return 0;
}

Dockerでコンテナをビルドして、実行してみます。

$ docker build . -t myclang
$ docker run --name myclang --interactive --tty --rm --volume $(pwd):/app myclang bash

コンテナ内で、gccコマンドでプログラムをコンパイルして実行できます。

# gcc main.c -o main
# ./main

Hello, world.と表示されたら成功です。

VS CodeでC言語の開発

Dockerコンテナが実行中の間に、VS Codeを起動して、コマンドパレットを起動(Ctrl+Shift+P)して、>Remote-Containers: Attach to Running Container...を実行すると、VS Codeを起動中のコンテナにアタッチできます。

C/C++ Extension Pack拡張機能をコンテナ内にインストールします。.vscode/extensions.jsonをセットしておけば再度コンテナをビルドした時も推奨の拡張機能として表示されます。

.vscode/extensions.json
{
  "recommendations": [
    "ms-vscode.cpptools-extension-pack"
  ]
}

VS Codeのコマンドパレットから>View: Show 実行とデバッグを実行し、サイドパネルから「実行とデバッグ」→C++ (GDB/LLDB)C/C++: gcc-10で、デバッグできます。ブレークポイントを貼ったりできます。

image.png

今回構築したプロジェクトのソースコードはGitHubにあります。

参考

10
9
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
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?