C言語を学ぶとき、最初のハードルになりやすいのが「環境構築」です。
特にWindowsでは、どのコンパイラを選び、どうインストールし、どうやって最初のプログラムを動かすのかが分かりにくいと感じる方が多いです。
本記事では、MSYS2(MinGW-w64)とVisual Studio Build Toolsという2つの代表的な選択肢について、入門者向けに手順を丁寧に解説し、最後に「Hello, World!」が実行できるところまで案内します。
WindowsでC言語コンパイラの選び方
まずは、WindowsでC言語を始めるときに代表的なコンパイラ環境であるMSYS2(MinGW-w64)とVisual Studio Build Toolsの違いを整理します。
どちらも無料で利用でき、C言語の学習には十分な機能を備えていますが、特徴や向き・不向きが異なります。

MSYS2(MinGW-w64)の特徴
MSYS2は、Windows上でUnixに近い開発環境を提供する仕組みです。
その中でMinGW-w64版gccを使うことで、Windows用の実行ファイルを作成できます。
MSYS2(MinGW-w64)のメリット
MSYS2(MinGW-w64)の主な利点を、文章で順に説明します。
まず、Unix系の開発環境に近い操作感が得られる点です。
ターミナル上でgccやmakeなど、Linuxと共通したコマンドを利用できるため、将来LinuxやmacOSでも開発したい場合にスムーズに移行しやすくなります。
また、MSYS2はpacmanというパッケージマネージャを備えており、ライブラリやツールのインストール・更新がコマンド1つで完了します。
たとえばgccやgdb、makeなど、C開発でよく使われるツールを簡単に揃えることができます。
さらに、MinGW-w64版gccは多くのオープンソースプロジェクトで利用されているコンパイラなので、書籍やWeb記事のサンプルコードがそのまま動きやすいという利点もあります。
MSYS2(MinGW-w64)の注意点
一方で、MSYS2はコマンドライン操作に慣れていない方には少しとっつきにくい面があります。
インストール直後は、MSYS2の各種シェルとWindows標準のコマンドプロンプトやPowerShellとの違いに戸惑うこともあります。
また、MSYS2の中でも「どのシェルでコンパイルするか」を正しく選ぶ必要があります。
特にC言語でWindowsアプリをビルドする場合はMSYS2 MinGW 64-bitなど、MinGW用のシェルを利用する点に注意が必要です。
Visual Studio Build Toolsの特徴
Visual Studio Build Toolsは、Microsoftが提供するVisual C++コンパイラ(cl)などを含むビルド環境です。
Visual Studio本体(IDE)を入れずに、コンパイラやビルドに必要な最低限のツールだけをインストールできる構成になっています。
Visual Studio Build Toolsのメリット
Visual Studio Build Toolsの最も大きな利点は、Windowsとの親和性が高いことです。
Windows用ソフトウェア開発ではVisual C++コンパイラが標準的な選択肢の1つであり、Windows向けネイティブアプリを本格的に開発したい場合に向いています。
また、Microsoft公式のインストーラでセットアップできるため、インストールウィザードに従う形で進めやすく、すでにVisual Studioを利用している環境との相性も良いです。
IDEを併用したくなった場合も、後からVisual Studio Communityを追加インストールすることができます。
さらに、Visual Studio Build Toolsでは開発者用コマンドプロンプトを起動すると、PATHなどの環境変数が自動で設定されます。
そのため、別途PATHを手動で通さなくてもclやnmakeなどをすぐに使える点も分かりやすい特徴です。
Visual Studio Build Toolsの注意点
注意点としては、Visual Studio Build Toolsはインストールサイズが比較的大きいことが挙げられます。
必要なコンポーネントを選べるとはいえ、MSYS2に比べるとディスク容量を多く消費しがちです。
また、コンパイラがVisual C++(cl)であるため、gcc向けの書籍や記事とオプションの指定方法や一部の仕様が異なる場合があります。
C言語自体は共通ですが、コマンドラインからのコンパイル手順は環境ごとに覚える必要があります。
初心者の選び方の目安
どちらを選ぶべきか迷った場合、以下のような目安で考えると良いです。

文章で整理すると、次のようになります。
まず、将来Linuxや他のUnix系OSでも開発をしてみたいと考えているなら、MSYS2(MinGW-w64)をおすすめします。
gccを使う経験は、学校や仕事でLinuxサーバの開発に携わるときに役立ちます。
一方で、Windows向けアプリケーション開発を中心に考えている場合や、Visual Studioによる開発にも興味がある場合は、Visual Studio Build Toolsが良い選択肢になります。
特に、今後C++やC#なども視野に入れているなら、Microsoftの開発環境に慣れておくメリットは大きいです。
最初の一歩としては、どちらを選んでも構いません。
本記事では両方のインストール方法を紹介しますので、まずは片方を試し、後からもう一方もインストールして比較してみるという学び方もおすすめです。
MSYS2(MinGW-w64)でgccをインストール
ここからは、MSYS2(MinGW-w64)を使ってgccコンパイラをWindowsにインストールする手順を詳しく説明します。
順番に進めれば、コマンドラインからgccが利用できる状態になります。

MSYS2のダウンロードとインストール
インストーラの入手
MSYS2は公式サイトからインストーラを取得します。
必ず公式サイトから最新版をダウンロードし、古いインストーラを紹介している個人サイトなどから入手しないようにすると安全です。

インストールウィザードの実行
ダウンロードした.exeファイルをダブルクリックして、インストールウィザードを開始します。
ウィザードでは、次のような項目を順に確認します。
1つめは、インストール先フォルダです。
特別な理由がなければ、デフォルト(例:C:\msys64)のままで問題ありません。
日本語や空白を含まないフォルダパスが望ましいため、デスクトップやドキュメント直下にインストールしないほうが無難です。
2つめは、ショートカットの作成に関する設定です。
スタートメニューにMSYS2の各シェルを登録する設定がある場合は、有効のまま進めると後で起動しやすくなります。

インストールを開始すると、必要なファイルが展開され、数分程度で完了します。
完了時に「MSYS2を起動する」チェックボックスが表示される場合は、そのまま起動して初期設定に進んでも構いません。

初回アップデートの実行
MSYS2をインストールした直後は、パッケージ情報やツールが古い状態になっている可能性があります。
そのため、まずパッケージデータベースと基本ツールのアップデートを行います。
MSYS2ターミナルの起動
スタートメニューからMSYS2 MSYSまたはMSYS2 MinGW 64-bitと書かれたショートカットを探し、クリックしてターミナルを起動します。
最初のアップデートはMSYS2 MSYSシェルで行うのが一般的ですが、最近のMSYS2ではドキュメントに従う形で進めて問題ありません。
pacmanでシステムアップデート
ターミナルが開いたら、次のコマンドを順に実行します。
# パッケージデータベースとシステム全体のアップデート
pacman -Syu
途中でy/nを聞かれた場合はyを入力して進めます。
アップデートの途中でターミナルを一度閉じて再起動するよう指示されることがあります。
その場合は案内に従い、ターミナルを閉じて再度起動し、必要に応じて再びpacman -Syuを実行します。
この作業により、MSYS2自体と基本的なパッケージが最新状態になります。
初回アップデートは少し時間がかかりますが、後のトラブルを避けるために重要なステップです。
gccのインストールとPATH設定
MSYS2のベースが整ったら、今度はMinGW-w64版gccコンパイラをインストールします。
MinGW-w64 gccのインストール
Windowsの64ビット環境を想定し、mingw-w64-x86_64-gccパッケージをインストールします。
MSYS2 MinGW 64-bitシェルを開いた状態で、次のコマンドを実行します。
# 64ビット版MinGW-w64 gccと関連ツールのインストール
pacman -S mingw-w64-x86_64-gcc
必要に応じてデバッグ用のgdbやmakeも同時にインストールしておくと便利です。
# デバッガとビルドツールも一緒に入れる例
pacman -S mingw-w64-x86_64-gdb mingw-w64-x86_64-make
このステップが完了すると、MSYS2のMinGW環境内でgccが使えるようになります。
PATH設定の考え方
MSYS2では、MSYS2のターミナル(MSYS2 MinGW 64-bit)を使う前提であれば、特別なPATH設定は不要です。
そのシェル内では、すでにgccへのパスが通っています。
一方で、Windows標準のコマンドプロンプトやPowerShellからもgccを使いたい場合は、以下のようなフォルダをPATHに追加する必要があります。
- 例:
C:\msys64\mingw64\bin
ただし、MSYS2のbinと他のツールチェーンのPATHが干渉してトラブルになるケースもあるため、入門段階ではMSYS2のMinGWシェル内で作業する方法をおすすめします。
慣れてきたら、用途に応じてPATHを調整していくと良いです。
インストール確認(gcc –version)
最後に、gccが正しくインストールされたかどうかを確認します。
MSYS2 MinGW 64-bitシェルで次のコマンドを実行します。
# gccのバージョン確認
gcc --version
正常にインストールされていれば、次のような情報が表示されます。
gcc.exe (RevX, Built by MSYS2 project) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
...
バージョン番号は例ですが、このようにgccのバージョン情報が表示されれば準備完了です。
Visual Studio Build Toolsでclをインストール
続いて、Microsoft公式のVisual Studio Build Toolsを使い、cl(Visual C++コンパイラ)をインストールする手順を説明します。
こちらも無料で利用できます。

Build Toolsの入手とインストール
インストーラのダウンロード
ブラウザでVisual Studio Build Toolsを検索し、Microsoft公式サイトにアクセスします。
ページ内に「Visual Studio のツール」や「Build Tools for Visual Studio」という項目がありますので、そこからインストーラをダウンロードします。

"Build Tool"を検索するとすぐに見つかります。インストーラのファイル名は、例えばvs_BuildTools.exeのような形式です。
インストーラの起動
ダウンロードが完了したら、vs_BuildTools.exeをダブルクリックしてインストーラを起動します。
初回起動時には、インストーラ自身の更新が行われることがありますので、指示に従って少し待ちます。
インストーラ画面が表示されたら、次のセクションで説明するワークロードの選択に進みます。
ワークロードの選択(C++デスクトップ開発)
Visual Studioのインストーラでは、「ワークロード」と呼ばれる単位で必要な機能をまとめて選択します。
C言語のコンパイラであるclを使うためには、「C++によるデスクトップ開発」ワークロードを選択するのが最も簡単です。

ワークロード一覧からC++によるデスクトップ開発にチェックを入れると、MSVC(Visual C++コンパイラ)、Windows SDKなど、C/C++開発に必要な主要コンポーネントが自動で選択されます。
右側の「インストールの詳細」タブで、MSVC vXXX - VS YYYY C++ x64/x86 ビルドツールといった項目が含まれていることを確認しておくと安心です。
特にカスタマイズが不要であれば、そのままインストールボタンを押せば大丈夫です。
インストールにはインターネット接続環境やマシン性能にもよりますが、数十分程度かかることがあります。
途中で電源が切れないように注意して、完了するまで待ちましょう。
開発者用コマンドプロンプトの起動
インストールが完了したら、開発者用コマンドプロンプトからclコマンドを利用できるようになります。
開発者用コマンドプロンプトとは
開発者用コマンドプロンプトは、コンパイラやビルドツールを使うための環境変数(PATHなど)が自動で設定されたコマンドプロンプトです。
通常のコマンドプロンプトではclが見つからない場合でも、開発者用コマンドプロンプトならすぐに使えます。
起動手順
スタートメニューを開き、次のような項目を探します。
- 例:Developer Command Prompt for VS 2022
- もしくは日本語環境で
開発者用コマンド プロンプト for VS 2022など
複数のバージョンがある場合もありますが、インストールしたVisual Studioのバージョンに対応するものを選べば問題ありません。
ショートカットをクリックすると、通常のコマンドプロンプトに似たウィンドウが開き、内部でVisual Studioのツール用設定スクリプトが読み込まれた状態になります。
インストール確認(cl)
開発者用コマンドプロンプトが起動したら、clコンパイラが正しくセットアップされているか確認します。
次のコマンドを入力して、Enterキーを押します。
:: clコンパイラのバージョンを確認
cl
正しくインストールされていれば、次のようなバージョン情報が表示されます。
Microsoft (R) C/C++ Optimizing Compiler Version 19.3X.XXXXX for x86
Copyright (C) Microsoft Corporation. All rights reserved.
使用法: cl [ オプション... ] ファイル名... [ /link リンカ オプション ]
このような表示が出れば、Visual C++コンパイラが利用できる準備が整った状態です。
C言語のビルドと実行の手順(使い方)
環境が整ったところで、実際にC言語のプログラムを作成し、ビルド(コンパイル)して実行する流れを体験してみましょう。
ここでは、C言語学習の定番であるhello.cというファイルを作成し、gccとclそれぞれでビルド・実行してみます。

サンプルコード(hello.c)を作成
テキストエディタの準備
C言語のソースコードは、テキストエディタを使って作成します。
まずはWindows標準のメモ帳でも構いませんが、将来的には以下のような軽量エディタを使うと便利です。
- Visual Studio Code
- Notepad++
- Sublime Text など
ここでは、エディタの種類に依存しないよう、共通の手順として説明します。
hello.cの中身
任意のフォルダ(例:C:\CPracticeやC:\Users\あなたのユーザー名\Documents\Cなど)に、hello.cという名前でファイルを保存します。
内容は次の通りです。
#include <stdio.h> // 標準入出力を使うためのヘッダファイル
// プログラムの実行開始地点(main関数)
int main(void)
{
// 画面に文字列を表示する
printf("Hello, World!\n");
// プログラムが正常終了したことをOSに知らせる
return 0;
}
このプログラムは「Hello, World!」という文字列を画面に表示するだけの、とてもシンプルなものです。
C言語では、必ずmain関数から処理が始まることも合わせて覚えておくと良いでしょう。
gccでコンパイルと実行(Windows)
ここでは、MSYS2(MinGW-w64)でインストールしたgccを使って、hello.cをビルドしてみます。
作業用ディレクトリに移動
MSYS2 MinGW 64-bitシェルを起動し、hello.cを保存したフォルダに移動します。
# 例: CドライブのCPracticeフォルダに移動する場合
cd /c/CPractice
MSYS2では、WindowsのC:\ドライブが/c/のように見える点に注意してください。
gccでコンパイル
次のコマンドを実行して、Cプログラムをコンパイルします。
# hello.c をコンパイルして、hello.exe という実行ファイルを作成
gcc hello.c -o hello.exe
このコマンドでは、hello.cを入力として、-o hello.exeオプションで出力ファイル名をhello.exeに指定しています。
オプションを省略した場合はa.exeなどの名前になるため、分かりやすさのために明示しておくのがおすすめです。
実行ファイルの起動
コンパイルがエラーなく完了したら、次のように実行します。
# カレントディレクトリ(./)のhello.exeを実行
./hello.exe
実行結果は次のようになります。
Hello, World!
このように表示されれば、gccを使ったCプログラムのビルドと実行が成功したことになります。
clでコンパイルと実行(Windows)
次に、Visual Studio Build Toolsのclコンパイラを使って同じhello.cをビルドしてみます。
作業用ディレクトリに移動
先ほどと同じフォルダにhello.cがある前提で、開発者用コマンドプロンプトを起動し、次のようにディレクトリを移動します。
:: 例: CドライブのCPracticeフォルダに移動
cd C:\CPractice
clでコンパイル
Visual C++コンパイラを使ってコンパイルする場合、次のようにコマンドを入力します。
:: hello.c をコンパイルして hello.exe を作成
cl hello.c
clでは、出力ファイル名を省略すると、ソースファイル名に基づいた実行ファイル(ここではhello.exe)が自動的に作成されます。
このコマンドを実行すると、次のような出力が表示されます。
Microsoft (R) C/C++ Optimizing Compiler Version 19.3X.XXXXX for x86
Copyright (C) Microsoft Corporation. All rights reserved.
hello.c
Microsoft (R) Incremental Linker Version 14.3X.XXXXX.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:hello.exe
hello.obj
ここでhello.objは中間ファイル(オブジェクトファイル)で、コンパイル+リンクの結果としてhello.exeが生成される流れになっています。
実行ファイルの起動
コンパイルが完了したら、次のように実行します。
:: hello.exeを実行
hello
同じく、実行結果は次のようになります。
Hello, World!
gccとclのどちらを使っても、最終的に動作するプログラムは同じであることが分かります。
よくあるエラーと対処(PATHや文字コード)
C言語の環境構築と最初のコンパイルでつまずきやすいのが、PATH設定の問題や文字コードの問題です。
ここでは、入門者が遭遇しやすいエラーとその対処法を整理します。

gccやclが見つからない(PATH関連)
よくあるエラーの1つが、次のようなメッセージです。
'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
または、clについても同様に'cl' は、内部コマンド…と表示されることがあります。
このようなエラーは、実行しようとしているコマンドの場所がPATHに登録されていないことが原因です。
対処法としては、次のポイントを確認します。
1つめに、正しいシェルを使っているかを確認します。
MSYS2の場合はMSYS2 MinGW 64-bit、Visual Studio Build Toolsの場合は開発者用コマンドプロンプトからコマンドを実行しているかを見ることが大切です。
2つめに、もし通常のコマンドプロンプトから利用したい場合は、環境変数PATHにコンパイラのパスを追加します。
たとえばMSYS2ならC:\msys64\mingw64\bin、Visual Studioなら自動設定を利用するのが安全なため、基本的には開発者用コマンドプロンプトを用いるのがおすすめです。
ファイルが見つからない・スペルミス
コンパイル時に次のようなエラーが出ることがあります。
gcc: error: hell.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
これは、指定したソースファイル名が実際のファイル名と一致していないか、カレントディレクトリが正しくないことが原因です。
対処として、以下を確認します。
- エディタで保存したファイル名が
hello.cになっているか(拡張子が.txtになっていないか) - コンパイル時のコマンドで
hello.cと正しく入力しているか - コンパイルを実行しているフォルダに
hello.cが存在するか
特にWindowsのメモ帳では、デフォルトで.txtが付いてしまうことがあるため、「ファイルの種類」を「すべてのファイル」にして、拡張子.cを明示して保存することが大切です。
文字化け・文字コードの問題
日本語を扱うプログラムを書いたときに、コンソールに表示される文字が「??」や記号だらけになってしまうことがあります。
この原因の多くは、ソースコードの文字コードとコンパイラ・実行環境の想定が一致していないことです。
Windowsでは、エディタの既定文字コードがUTF-8でない場合や、コンソールのコードページがShift_JISになっている場合があります。
入門段階では、次の方針をおすすめします。
- ソースコードはUTF-8で保存する(Visual Studio Codeなどでは既定がUTF-8)
- 日本語メッセージの出力は最初は控え、
"Hello, World!"など英数字で進める - どうしても日本語を使いたい場合は、環境ごとの推奨設定(コンソールのコードページ変更など)を別途調べる
文字コードの問題はやや複雑なので、まずはアルファベットだけでC言語の基本を学び、後から日本語対応を深掘りするのが理解しやすい進め方です。
まとめ
本記事では、WindowsでC言語を始めるための環境構築として、MSYS2(MinGW-w64)とVisual Studio Build Toolsの2つを取り上げ、それぞれの特徴とインストール手順、そして「Hello, World!」プログラムをgccとclでビルド・実行する方法を解説しました。
最初はコマンドや設定に戸惑うかもしれませんが、一度流れを体験すれば環境構築のハードルは大きく下がります。
どちらのコンパイラを選んでもC言語の基本は同じですので、本記事を参考にまずは1つ環境を整え、実際に手を動かしながらC言語の学習を進めてみてください。
