MSYS2 を使っていると、以下のように複数の「環境(シェル)」が出てきますね:
MSYS
MINGW64
MINGW32
UCRT64
CLANG64
CLANG32
それぞれの役割・用途を簡潔に説明します👇
目次
🔧 主要な MSYS2 シェルの違い
環境名 | ターゲット | コンパイラ | 用途・特徴 |
---|---|---|---|
MSYS | POSIX ツール(bash等) | MSYS2 gcc | MSYS2 の内部管理用。Windows用バイナリのビルド非推奨。 |
MINGW64 | Windows 64bit | mingw-w64-gcc | Windows向け 64bit アプリのビルドに最適。 |
MINGW32 | Windows 32bit | mingw-w64-gcc | Windows向け 32bit アプリのビルド。 |
UCRT64 | Windows 64bit (UCRT) | mingw-w64 + UCRT | Windows の UCRT ランタイム(より新しい C ランタイム)を使用。 |
CLANG64 | Windows 64bit (LLVM) | clang | LLVM/Clang ベースでビルドしたい場合。 |
CLANG32 | Windows 32bit (LLVM) | clang | 上の 32bit 版。 |
🎯 どれを使えばいいの?
GTK3 + Mono をビルド or 実行するなら:
👉 MINGW64
シェルが無難かつ安定
C:\msys64\mingw64.exe
GTK3 も mingw-w64-x86_64-gtk3
パッケージが対応しており、64bit Windows で一番一般的な構成です。
💡 各シェルの起動方法
MSYS2 をインストールした後、スタートメニューに次のような項目が並びます:
- MSYS2 MSYS →
msys2.exe
- MSYS2 MinGW 64-bit →
mingw64.exe
← GTK3ビルドにはこれ - MSYS2 MinGW 32-bit →
mingw32.exe
- MSYS2 UCRT64 →
ucrt64.exe
- MSYS2 CLANG64 →
clang64.exe
🧠 補足:なぜ分かれているの?
MSYS2 は「UNIX風ツール」と「Windowsアプリのビルド」を分離するために環境を分けています。
MSYS
は bash, make, pacman などの UNIXツール用(実行ファイルは MSYS2 DLL に依存)MINGW64
などは純粋な Windows ネイティブアプリが作れる
✳️ 実行ファイルの依存性にも違いがある!
シェル | hello.exe の依存 |
---|---|
MSYS | msys-2.0.dll 等が必要(UNIX的) |
MINGW64等 | 依存DLLなし、純粋なWindowsアプリ |
もしビルドした .exe
を他の人に配布したい場合は、MINGW64
や UCRT64
などで作るのがベストです。
必要なら:
- 各環境での
pkg-config
の使い方 - Mono と連携する
C
ライブラリのビルド方法 - GTK3 バイナリの DLL の場所
なども解説できます。興味あります?