2025年8月24日
概要
Windows環境でC/C++のプログラムをコンパイル・実行する方法はいくつかあります。例えば、MSYS2を利用する方法や、Visual StudioなどのIDEを使う方法も一般的です。 ここでは、その中から WSL2 (Windows Subsystem for Linux 2) を利用し、VSCodeと組み合わせて開発できるようにする手順 を記載します。
システム要件
OSのバージョン
- Windows11(エディションは問わない)、Windows 10の場合は、64bit版でVersion 1903 (ビルド 18362) 以降であること。
ハードウェア要件
- CPUの仮想化支援機能が有効になっていること。 タスクマネージャーを開き、[パフォーマンス]タブの[CPU]の項目で「仮想化: 有効」となっていればOKです。無効の場合は、PCのUEFI/BIOS設定画面で有効にする必要があります。
※下記キャプチャの赤枠の箇所。
インストール
以下、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環境を開く
- VSCode 左下の「><」マークをクリック
(先の手順でデフォルトのディストリビューションに設定した人)
- 「Connect to WSL」を選択
(先の手順でデフォルトのディストリビューションに設定していない人、もしくはデフォルトが不明)
- 「Connect to WSL using Destro…」を選択する。
- 今回作成したディストリビューションを選択する。
ターミナルのプロンプトが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
でビルドでき、作業フォルダに実行ファイルが生成されます。
まとめ
- gcc = Cコンパイラ, g++ = C++コンパイラ
- WindowsでもWSL2を使えばネイティブLinux同様の開発環境を構築可能
- VSCode + Remote-WSL + (拡張機能) で快適なC/C++開発が可能(かもね)
以上
補足:代表的な開発環境の比較
環境 | 特徴 | メリット | デメリット |
---|---|---|---|
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系ツールとの親和性は低い |