WindowsでC言語を始めるとき、最初のハードルはコンパイラの選定とインストールです。
本記事ではMSYS2(MinGW-w64)とVisual Studio Build Toolsの2つの代表的な方法について、入手からセットアップ、ビルドと実行、よくあるつまずきの解消までを入門者向けに順を追って詳しく解説します。
WindowsでC言語コンパイラの選び方
MSYS2(MinGW-w64)の特徴
MSYS2はPacmanによるパッケージ管理を備えた開発環境で、MinGW-w64版のgccやgdb、makeなどのUnix系ツールをまとめて導入できます。
Linuxに近いコマンドライン体験が得られることに加え、豊富なオープンソースライブラリをワンコマンドで追加できる点が実用的です。
生成される実行ファイルはWindowsネイティブ(外部ランタイム不要)で、VS Codeなどのエディタとも相性が良いです。
インストール容量は比較的軽く、更新が高速に提供されるのも利点です。
Visual Studio Build Toolsの特徴
Visual Studio Build ToolsはMSVC(cl)コンパイラやWindows SDK、MSBuildなどを含むMicrosoft公式のビルド環境です。
Windows APIを使う開発との親和性が高く、最適化やデバッガ、診断ツールも豊富です。
セットアップ後は「開発者用コマンドプロンプト」を使うだけで環境変数が整い、clコマンドでCのビルドができます。
インストール容量はやや大きめですが、Windows向けの本格開発や将来的にVisual Studio IDEへ移行する予定がある場合に安心感があります。
初心者の選び方の目安
初めての方は、コマンドライン中心で軽量に始めたいならMSYS2、Windows SDKやVisual Studio系のツールを見据えたいならBuild Toolsが目安になります。
どちらも無料で、後から乗り換えることも可能です。
迷ったらMSYS2でgccから入門し、必要になった段階でBuild Toolsを追加する方法も現実的です。
以下に要点を比較します。
観点 | MSYS2(MinGW-w64) | Visual Studio Build Tools |
---|---|---|
インストール容量 | 小さめ | 大きめ |
コマンドラインでの使い勝手 | Linuxに近く直感的 | 開発者用コマンドプロンプト経由で安定 |
付属ツール | gcc/gdb/make/多数のパッケージ | MSVC/cl、Windows SDK、MSBuild |
IDEとの連携 | VS Codeなどと相性良 | Visual Studio/VS Codeと強力に連携 |
バイナリ互換 | Windowsネイティブ実行ファイル | Windowsネイティブ実行ファイル |
更新頻度 | 早い | 四半期〜半年スパンが中心 |
学習コスト | 低〜中 | 中 |
日本語出力の扱い | 端末のコードページ設定に注意 | /utf-8オプションで比較的簡単 |
MSYS2(MinGW-w64)でgccをインストール
MSYS2のダウンロードとインストール
MSYS2の公式サイト(msys2.org)から64ビット版インストーラ(msys2-x86_64-xxxx.exe)をダウンロードし、既定のインストール先(C:\msys64)にそのまま導入します。

セットアップが完了すると、スタートメニューに「MSYS2 MSYS」「MSYS2 MinGW 64-bit」「MSYS2 UCRT64」などのショートカットが追加されます。

入門ではUCRT64かMINGW64のいずれかを使えば問題ありません。
初回アップデートの実行
MSYS2は導入直後にパッケージデータベースと本体の更新が必要です。
まず「MSYS2 MSYS」(黒い端末)を起動し、次の順に実行します。
# 1回目のフルアップデート(必要に応じて自動で再起動要求あり)
pacman -Syu
# 端末をいったん閉じて再度「MSYS2 MSYS」を開きます
# 2回目のアップデートで残りを適用
pacman -Su
途中でYes/Noが表示された場合は基本的にYesで進めます。
これで最新のMSYS2基盤が整います。
gccのインストールとPATH設定
gccツールチェーンは次のようにインストールします。
ここでは新しめのUCRT64を例にしますが、MINGW64でも同様です。
MSYS2のUCRT64は、Windowsの「Universal C Runtime (UCRT)」に基づいた64ビット環境で、最新のWindows標準ランタイムと互換性を持つ開発・実行環境を提供し、より広い互換性と安定した動作を実現します。
最新のWindowsに最適化されているため、基本的にはこちらがおすすめです。
# UCRT64向けのツールチェーン一式(gcc/g++/gdb/make等)を導入
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
# MINGW64を使う場合の代替
# pacman -S --needed base-devel mingw-w64-x86_64-toolchain
以降の開発は「MSYS2 UCRT64」または「MSYS2 MinGW 64-bit」の端末を使うとPATHが自動で通るため簡単です。
PowerShellやコマンドプロンプトから直接gcc
を使いたい場合は、環境変数PATHに次のいずれかを追加します。
- UCRT64の場合: C:\msys64\ucrt64\bin
- MINGW64の場合: C:\msys64\mingw64\bin
Windowsの設定から「システム」→「バージョン情報」→「システムの詳細設定」→「環境変数」→「Path」を開き、「新規」で上記パスを追加してください。
MSYS2付属の端末を使ううちは無理にPATHを通す必要はありません。
インストール確認(gcc –version)
端末でgcc --version
を実行し、バージョンが表示されれば成功です。
# UCRT64またはMINGW64端末で実行
gcc --version
gcc (RevX, Built by MSYS2 project) 14.1.0
Copyright (C) ...
This is free software; see the source for copying conditions.
環境によってはコンソールウィンドウ(UCRT64/MINGW64など)の再起動が必要です。エラーが出る場合は再度実行UCRT64やMSYS64を実行してください。
これで、MSYS2を用いたC言語プログラミング環境が完成しました。
Visual Studio Build Toolsに興味がない場合は、C言語のビルドと実行の手順(使い方)に進んでください。
Visual Studio Build Toolsでclをインストール
Build Toolsの入手とインストール
Build ToolsはVisual Studioのインストーラーから入手します。
まずは、Visual StudioのダウンロードページからVisual Studio無料版をダウンロードしてください。

ダウンロードしたインストーラーからBuild Toolsを導入していきます。


ワークロードの選択(C++デスクトップ開発)
ワークロード選択画面で「C++ デスクトップ開発」にチェックを入れます。

これにより必要なMSVCコンパイラ、Windows SDK、MSBuildがまとめて入ります。
チェックを入れたら右下のインストールをクリック。まあまあ時間がかかるので適当に暇をつぶしておきましょう。
容量を抑えたい場合は最小構成でもかまいませんが、典型的には以下が選ばれます。
- MSVC v143 ビルド ツール(x64/x86)
- Windows 10 SDKまたはWindows 11 SDK
- C++ CMake tools for Windows(任意)
どういう構成にすれば良いのかは初心者ではわからないと思いますので、下手にカスタマイズしないほうが良いでしょう。
開発者用コマンドプロンプトの起動
インストール後、スタートメニューから「x64 Native Tools Command Prompt for VS 2022」または「Developer PowerShell for VS 2022」を起動します。

これらは内部でvcvarsall.batを呼び出し、clやlinkに必要な環境変数を自動設定します。
インストール確認(cl)
開いた開発者用コマンドプロンプトでcl
と打ってバージョン表示が出れば成功です。
:: 開発者用コマンドプロンプト上で実行
cl
Microsoft(R) C/C++ Optimizing Compiler Version 19.44.35215 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
使い方: cl [ オプション... ] ファイル名... [ /link リンク オプション... ]
C言語のビルドと実行の手順(使い方)
サンプルコード(hello.c)を作成
任意の作業フォルダ(例: C:\c\)にhello.cを作成します。
Windowsの初期設定では拡張子が表示されないため、ファイルの拡張子を.c
に変更することができません。
そのため、右クリックメニューからファイルを作成すると、必ず拡張子が.txt
になってしまいます。(hello.c
とするとhello.c.txt
になる)
なので、エクスプローラーの[表示] > [表示]からファイル名拡張子にチェックを入れて、拡張子も変更できるようにしておいてください。

最初は英数字のみの出力にして、文字コードの影響を受けない形で動作確認するのがおすすめです。
// hello.c - 最小のCプログラムの例
// コンパイラや端末設定に依存しにくいASCII文字のみを出力します。
#include <stdio.h> // 標準入出力ライブラリを利用するために必要
int main(void) {
// 1行のメッセージを表示して終了します
puts("Hello, C on Windows!");
return 0; // 正常終了を意味する戻り値
}
Hello, C on Windows!
gccでコンパイルと実行(Windows)
MSYS2の「UCRT64」または「MinGW 64-bit」端末を開き、ファイルを保存したフォルダに移動します。
以下はUCRT64端末での例です。
# 作業フォルダへ移動
# 違うフォルダに作成した場合はそのフォルダのパスに移動すること
cd c:/c
# 警告を有効にしてC17準拠で最適化付きでビルド
gcc -std=c17 -O2 -Wall -Wextra -o hello.exe hello.c
# 実行
./hello.exe
Hello, C on Windows!

補足として、-o
を省略すると既定でa.exe
という名前で出力されます。
拡張子.exe
まで明示した方が後の手順で混乱が少なくなります。
clでコンパイルと実行(Windows)
「x64 Native Tools Command Prompt for VS 2022」を開き、作業フォルダに移動してビルドします。
:: ドライブとフォルダに移動 (例はCドライブ直下の作業フォルダ)
C:
cd \c\
:: ロゴ非表示、警告レベル3、C17準拠でビルド
cl /nologo /W3 /std:c17 hello.c
:: 出力は既定でhello.exeという実行ファイルになります
./hello
Hello, C on Windows!

よくあるエラーと対処(PATHや文字コード)
入門段階でつまずきやすいのはPATH未設定と文字化けです。
原因と対処を順に確認します。
‘gcc’ は内部コマンドまたは外部コマンド… と表示される
MSYS2のbin
フォルダがPATHに通っていません。
MSYS2の端末(UCRT64またはMINGW64)を使えば自動で通ります。
PowerShellやコマンドプロンプトから使いたい場合は、C:\msys64\ucrt64\binまたはC:\msys64\mingw64\binを環境変数Pathに追加してください。
コマンドwhere gcc
でパスが見えるか確認できます。
:: どのgccが使われるか確認
where gcc
‘cl’ は内部コマンドまたは外部コマンド… と表示される
通常のコマンドプロンプトでは環境が設定されていません。
必ず「x64 Native Tools Command Prompt for VS 2022」や「Developer PowerShell for VS」を使ってください。
どうしても通常のシェルで使いたい場合はvcvarsall.bat
を手動で呼び出します。
:: 例: x64用の環境をロード
call "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
cl
fatal error: stdio.h: No such file or directory
MSYS2の「MSYS」端末でMinGWのヘッダにアクセスできていない、または誤ったgcc
を呼び出している可能性があります。
「MSYS2 UCRT64」または「MSYS2 MinGW 64-bit」の端末を使い、where gcc
でC:\msys64\ucrt64\bin
やC:\msys64\mingw64\bin
配下のgccが選ばれていることを確認してください。
実行時にPermission deniedや実行ファイルが消える
実行中の.exe
を上書きしようとしている、あるいはウイルス対策ソフトにより隔離されているケースがあります。アプリを終了してから再ビルドし、必要に応じて作業フォルダを信頼済みに設定します。
日本語が文字化けする
コンソールのコードページとコンパイル時の実行文字セットが一致していない場合に発生します。
簡単なのは英数字のみで動作確認した上で、必要に応じてUTF-8に統一することです。代表的な対処を示します。
MSVC(cl)でUTF-8を使う場合のオプション
ソースをUTF-8(できればBOM付き)で保存し、/utf-8
を付けてビルドします。
Windows Terminal側はUTF-8(既定)で、従来のコマンドプロンプトではchcp 65001
でUTF-8に切り替えます。
:: コードページをUTF-8に
chcp 65001
:: UTF-8としてコンパイル・実行
cl /nologo /std:c17 /utf-8 hello.c
hello
gcc(MinGW-w64)でUTF-8を使う場合のオプション
端末をUTF-8にして、実行時文字セットをUTF-8に指定します。
# PowerShellやcmdでUTF-8にする場合(コマンドプロンプト)
chcp 65001
# gccで入力をUTF-8、実行時文字セットをUTF-8に
gcc -std=c17 -O2 -Wall -Wextra -finput-charset=UTF-8 -fexec-charset=UTF-8 -o hello.exe hello.c
./hello.exe
従来のCP932(Shift_JIS)に合わせる方法
端末を既定のまま使うなら、-fexec-charset=CP932
やMSVCの/execution-charset:shift_jis
を使うと文字化けを避けられます。
# gccで入力UTF-8、実行はCP932に変換
gcc -std=c17 -O2 -Wall -Wextra -finput-charset=UTF-8 -fexec-charset=CP932 -o hello.exe hello.c
日本語メッセージの取り扱いは端末やフォントの設定にも影響されます。
初心者のうちはまず英数字のメッセージで成功体験を得てから、文字コードの統一に取り組むと理解しやすいです。
まとめ
本記事では、WindowsでC言語コンパイラを用意する2つの代表的な方法としてMSYS2(MinGW-w64)とVisual Studio Build Toolsを紹介し、各々の特徴、インストール手順、確認方法、そして実際のビルドと実行までを通して解説しました。
軽量でパッケージ管理が便利なMSYS2は学習の第一歩に好適で、Microsoft公式のMSVCはWindows開発との親和性と将来の拡張性に優れます。
いずれの方法でも、まずはシンプルなhello.cをビルドして実行まで到達することが第一目標です。
PATH設定の確認と、日本語表示の文字コード整合性に注意すれば、多くの初期トラブルは回避できます。
自分の目的に合う環境を選び、少しずつツールとオプションに慣れていきましょう。
さらにステップアップしたい場合はこちらに進んでみると良いでしょう。