GTK3 + Mono をビルド or 実行するなら

MSYS2 を使っていると、以下のように複数の「環境(シェル)」が出てきますね:

  • MSYS
  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANG32

それぞれの役割・用途を簡潔に説明します👇


目次

🔧 主要な MSYS2 シェルの違い

環境名ターゲットコンパイラ用途・特徴
MSYSPOSIX ツール(bash等)MSYS2 gccMSYS2 の内部管理用。Windows用バイナリのビルド非推奨
MINGW64Windows 64bitmingw-w64-gccWindows向け 64bit アプリのビルドに最適
MINGW32Windows 32bitmingw-w64-gccWindows向け 32bit アプリのビルド。
UCRT64Windows 64bit (UCRT)mingw-w64 + UCRTWindows の UCRT ランタイム(より新しい C ランタイム)を使用。
CLANG64Windows 64bit (LLVM)clangLLVM/Clang ベースでビルドしたい場合。
CLANG32Windows 32bit (LLVM)clang上の 32bit 版。

🎯 どれを使えばいいの?

GTK3 + Mono をビルド or 実行するなら:

👉 MINGW64 シェルが無難かつ安定

C:\msys64\mingw64.exe

GTK3 も mingw-w64-x86_64-gtk3 パッケージが対応しており、64bit Windows で一番一般的な構成です。


💡 各シェルの起動方法

MSYS2 をインストールした後、スタートメニューに次のような項目が並びます:

  • MSYS2 MSYSmsys2.exe
  • MSYS2 MinGW 64-bitmingw64.exe ← GTK3ビルドにはこれ
  • MSYS2 MinGW 32-bitmingw32.exe
  • MSYS2 UCRT64ucrt64.exe
  • MSYS2 CLANG64clang64.exe

🧠 補足:なぜ分かれているの?

MSYS2 は「UNIX風ツール」と「Windowsアプリのビルド」を分離するために環境を分けています。

  • MSYS は bash, make, pacman などの UNIXツール用(実行ファイルは MSYS2 DLL に依存)
  • MINGW64 などは純粋な Windows ネイティブアプリが作れる

✳️ 実行ファイルの依存性にも違いがある!

シェルhello.exe の依存
MSYSmsys-2.0.dll 等が必要(UNIX的)
MINGW64等依存DLLなし、純粋なWindowsアプリ

もしビルドした .exe を他の人に配布したい場合は、MINGW64UCRT64 などで作るのがベストです。


必要なら:

  • 各環境での pkg-config の使い方
  • Mono と連携する C ライブラリのビルド方法
  • GTK3 バイナリの DLL の場所

なども解説できます。興味あります?

よかったらシェアしてね!
目次