# WSL/MinGW 環境

# 1 概要

Windows で Linux 向け C コードをビルドするには、Linux 互換の開発環境が必要です。主な選択肢として、WSL (Windows Subsystem for Linux) と MinGW (Minimalist GNU for Windows) があります。WSL は Windows 上で Linux カーネルを動作させる仕組みで、実際の Linux 環境とほぼ同じ開発体験が得られます。MinGW は Windows ネイティブで動作する GCC ツールチェインを提供します。

このリポジトリは Linux (GCC/WSL) と Windows (MSVC/MinGW) のクロスプラットフォーム開発をサポートしています。Windows での開発には、あらかじめインストールされている Visual Studio Build Tools (VSBT) と Git for Windows を使用します。`Start-VSCode-With-Env.ps1` スクリプトがこれらの環境変数を自動設定して VS Code を起動します。

WSL を使う場合は Linux 環境と同様の手順でビルドでき、MinGW (Git for Windows 付属) を使う場合は Windows ネイティブバイナリのビルドが可能です。

# 2 習得目標

- WSL のインストールと基本的な Linux コマンドの実行ができる
- WSL から VS Code を起動し、C コードを編集・ビルドできる
- Git for Windows の Git Bash でシェルコマンドを実行できる
- `Start-VSCode-With-Env.ps1` の役割と使い方を理解できる
- Windows と Linux での実行ファイル・ライブラリのファイル名の違いを説明できる
- `make` コマンドが Windows で動作するよう環境が設定されていることを確認できる

# 3 学習マテリアル

## 3.1 公式ドキュメント

- WSL インストールガイド(Microsoft Learn) - WSL のインストール手順 (日本語)
  - WSL 2 の有効化と Linux ディストリビューションのインストール
- VS Code + WSL の設定 - VS Code Remote - WSL 拡張機能の使い方 (英語)
- Git for Windows - Git for Windows の公式サイト (英語)

# 4 このリポジトリとの関連

## 4.1 使用箇所 (具体的なファイル・コマンド)

Windows での環境セットアップ (PowerShell):

    . .\Start-VSCode-With-Env.ps1 -EnvOnly

    .\Start-VSCode-With-Env.ps1

`Start-VSCode-With-Env.ps1` が自動設定する環境変数:

Start-VSCode-With-Env.ps1 が設定する環境変数一覧
環境変数 | 内容
--- | ---
`PATH` | Git for Windows (MinGW) のバイナリパスを追加
`INCLUDE` | Visual Studio Build Tools のインクルードパス
`LIB` | Visual Studio Build Tools のライブラリパス

WSL を使った Linux ビルドの確認:

    gcc --version     # GCC のバージョン確認
    make --version    # Make のバージョン確認
    make              # ビルド実行

OS による出力ファイルの違いの例:

OS による出力ファイルの違い
種別 | Linux | Windows
--- | --- | ---
動的ライブラリ | `libcalc.so` | `libcalc.dll`
静的ライブラリ | `libcalcbase.a` | `libcalcbase.lib`
実行ファイル | `add` | `add.exe`

## 4.2 関連ドキュメント

- VS Code(スキルガイド) - VS Code の設定と拡張機能
- GCC / MSVC ツールチェイン(スキルガイド) - コンパイラのオプション
- クロスプラットフォーム対応(スキルガイド) - OS 差異の吸収方法