C/C++言語開発環境(Windows)

2025年8月24日

概要

Windows環境でC/C++のプログラムをコンパイル・実行する方法はいくつかあります。例えば、MSYS2を利用する方法や、Visual StudioなどのIDEを使う方法も一般的です。 ここでは、その中から WSL2 (Windows Subsystem for Linux 2) を利用し、VSCodeと組み合わせて開発できるようにする手順 を記載します。

システム要件

OSのバージョン

ハードウェア要件

※下記キャプチャの赤枠の箇所。 alt text

インストール

以下、PowerShellまたはコマンドプロンプトにて行う。 (今回の例ではPowerShell)

利用可能なLinuxディストリビューションの一覧を表示

wsl --list --online

すると一覧が表示される。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_10                Oracle Linux 8.10
OracleLinux_9_5                 Oracle Linux 9.5
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Ubuntuをインストール

wsl --install -d Ubuntu-24.04

途中でユーザ名とパスワードの作成を促されるので入力する。 ※Windowsのユーザ名・パスワードと同じである必要はない。

以下のように、「Welcome to Ubuntu 24.04.1 LTS….」と表示されればインストール完了。

Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

このとき、以下のようにプロンプトが切り替わり、Linuxにログインした状態になっている。

yoichi@minisyoichi:/mnt/c/Users/yoich$

デフォルトのWSL環境を変更(任意)

wsl --set-default Ubuntu-24.04

パッケージリストとソフトウェアの更新

sudo apt update && sudo apt upgrade

※「Do you want to continue? [Y/n]」と聞かれたら Y を入力。時間がかかる場合があります。
これはシステムを最新状態にするために必要です。

gccをインストールする

sudo apt install gcc

g++をインストールする (C++を使いたい人のみ)

sudo apt install g++

コンパイラのバージョンを確認する

gcc

gcc --version

g++ (C++用)

g++ --version

コンパイルできることを確認する

C (gcc)

echo -e '#include <stdio.h>\nint main(){printf("Hello, C world!\\n");return 0;}' > hello.c
gcc hello.c -o hello_c
./hello_c

Hello, C world! と表示されればOK。

C++ (g++)

echo -e '#include <iostream>\nint main(){std::cout<<"Hello, C++ world!"<<std::endl;return 0;}' > hello.cpp
g++ hello.cpp -o hello_cpp
./hello_cpp

Hello, C++ world! と表示されればOK。

※エラーが出た場合は、改行コード(CRLF/LF)やコピペ時の余分な文字に注意してください。


VSCode での開発手順

必要な拡張機能

WSLのUbuntu環境を開く

alt text

(先の手順でデフォルトのディストリビューションに設定した人)

alt text

(先の手順でデフォルトのディストリビューションに設定していない人、もしくはデフォルトが不明)

alt text

ターミナルのプロンプトがLinuxになっていればOK。
ここから先はLinuxの世界です!

作業フォルダを作成 (初回のみ)

mkdir ~/c_projects && cd ~/c_projects

サンプルプログラムを作成

C

#include <stdio.h>

int main() {
    printf("Hello, VSCode from C!\n");
    return 0;
}

C++

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, VSCode from C++!" << endl;
    return 0;
}

実行

gcc hello.c -o hello_c && ./hello_c
g++ hello.cpp -o hello_cpp && ./hello_cpp

VSCodeのタスクに登録する

.vscode/tasks.json を作成して以下を設定する。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build C file (gcc)",
            "type": "shell",
            "command": "gcc",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build"
            },
            "problemMatcher": [
                "$gcc"
            ]
        },
        {
            "label": "Build C++ file (g++)",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}

この設定にて、現在開いているファイルがビルドの対象になります。

Ctrl+Shift+B でビルドでき、作業フォルダに実行ファイルが生成されます。


まとめ

以上

補足:代表的な開発環境の比較

環境 特徴 メリット デメリット
WSL2
(Windows Subsystem for Linux 2)
Windows上でLinuxカーネルを動作させる仕組み - Linuxとほぼ同等の環境
- 軽量でVSCodeとの相性◎
- パッケージ管理がapt等で容易
- Windows標準とは別世界(Linux知識が必要)
MSYS2 Windows上で動く軽量Unix互換環境 - インストールが簡単
- pacmanによるパッケージ管理
- ネイティブWindowsと親和性あり
- Linux完全互換ではない
- 学習リソースがWSLに比べ少なめ
Visual Studio
(IDE)
Microsoft公式の統合開発環境 - GUIで完結
- デバッガ等の機能が充実
- Windows向け開発に最適
- インストールが重い
- Linux系ツールとの親和性は低い