結論から(2026)
WinLibs.com で公開されているコンパイラ一式をダウンロードして、任意のフォルダに展開し、環境変数やパスを設定して使いましょう。
Windows 11 (Intel 64bit) をお使いの方は、『Download it here.』でダウンロードできるもの、
LATEST にある GCC (with POSIX threads) + MinGW-w64 (UCRT) without LLVM/CLANG/LLD/LLDB を選ぶとよいでしょう。
パスや環境変数を設定する mingwvars.bat は同梱されているのですが、PowerShell版がなかったので、 ps1 版の設定ファイルを作ってGistに置いておきました。mingwvars.ps1 として保存し、ドットソーシング (. .\mingwvars.ps1 ) で使うとよいでしょう。ps1スクリプトのセキュリティ対応については各自で行ってください。
mingwvars.ps1: PowerShell script for setting up the environment for the WinLibs C compiler
1. WinLibs.com の gcc コンパイラを導入する
『In short: it's a free C and C++ compiler for Microsoft Windows.』とあるように、Windowsで自由に使えるコンパイラです。
メリットは、可搬性に優れ、導入も容易であり、実行ファイル作成用ツール、デバッガ、GNU Make 環境(コマンドは make ではなく mingw32-make.exe になります。gmake.exe とかにしといてほしかった)、アセンブラを含むこと、ストレージに対するオーバーヘッドが少ないことが挙げられます。オプションで clang 処理系も用意されているのもありがたいですね。個人的にはインストール先を問わないところも気に入っています。ファイルサーバのUNCパスをドライブレターに紐付けて古典的なファイルパスにしてしまえば、パスや環境変数も設定しやすく複数台のWindows PCでコンパイラを共有できそう、というのは、他の方法にはないものかと思います。
デメリットとしては、標準的なライブラリ以外は存在しないため、関連開発ライブラリを使いたい場合は自力でビルド、ならびにローカル環境にインストールする必要があります。このとき、Linux 環境ではないため make install で呼び出されている処理が動かない可能性があります。
コンパイル操作は パスや環境設定を行った状態の cmd.exe もしくは PowerShell で行うか、
VS Code の拡張を使うか、 Code::Blocks などを使う、といった方法が考えられます。
こちらの記事が大変参考になります。
2. cygwin / msys2 など Windows 上での UNIX互換環境を導入する
cygwin と msys2 は微妙に役回りが違うものなのですが、なんやか Windows にファイルを大量に入れ、独自のシェルやターミナル経由でCLI動作し、それぞれのパッケージマネージャーを通してコンパイラや関連開発ライブラリなどを入れることができる、という点で非常に似通っているので、一緒くたにしてみました。
メリットは、Windows のファイルシステムの上に gcc コンパイル環境ならびに関連開発ライブラリを一括導入できること。また、ファイルシステムは Windows のそれと同じです。
デメリットは、シェル経由で操作するため Linuxの CLIコマンドの知識が必要となること、Windows のシェルである PowerShell や cmd.exe から使うわけではなく、独自のホームディレクトリが別に用意されてしまう(設定で共用は可能)こと、他の msys2 や cygwin ベースのアプリを入れているとバイナリ実行のためのファイルや環境が重複してしまいストレージを浪費する、などでしょうか。
msys2 はずいぶんと心得ているもので、公式サイトにコンパイラを入れるところまで手順が示されています。
3. wsl2 を導入する
wsl2 を導入して、wsl2 で動いている Linux 環境に gcc コンパイラを入れる方法です。
メリットは、ほぼ Linux ネイティブな gcc コンパイル環境ならびに関連開発ライブラリを一括導入できること。
デメリットは、仮想PCを起動してシェルから使うため、PCに対する負荷が少し高いこと、Windows 以外に Linux PCの管理知識が必要となる(wsl2の仮想PCに対し、ユーザーを作るところからはじめるので msys2/cygwin 以上にLinuxの知識が必要になります)こと、ストレージ容量をより多く必要とすること、ファイルアクセスの方法が特殊で同じPCの Windows ネイティブアプリとの親和性があまり高くないこと、などです。
ベストプラクティスは以下のWebページが参考になるでしょう。
でも情報が多くてめんどくさそう、という人がこういうページにたどり着いてるんだろうな、とは思うのですが……
選外. Build Tools for Visual Studio を導入する
Visual Studioの一部として配布されている『Build Tools for Visual Studio』を導入する方法もあります。
メリットは、Windowsネイティブのバイナリを作成することができること、WindowsターミナルやVisual Studio Code などから簡単に呼び出すことができることです。
デメリットは、gcc ではなく cl というWindowsのコンパイラなので、C言語の教科書などがターゲットにしている gcc や clang などとオプションなどが相当違うこと、バイナリファイルを作成するビルドツールも make ではないこと、Linux系でよく用いられるような関連開発ライブラリと同等なものを探すのが難しく、自前でコンパイルして整備する必要があるかもしれないこと、などが挙げられます。
ベストプラクティスは以下のページならびに関連のページが参考になるでしょう。
インストール後は、環境変数やパスを通して使うことになります。Windows Terminal に設定済みのプロファイルが登録されるので、それを使うのが簡単です。でも情報が多くてめんどくさそう、という人が(以下略)