個別投稿

MSYS2

MSYS2をインストールすると、複数の異なるシェル(ターミナル)が登録されます。それぞれの役割を説明します。


1. MSYS2 MSYS

  • 用途: UNIXライクな環境を提供
  • コンパイラ: なし(基本的なPOSIX互換環境)
  • パス: /usr/bin
  • 適用例: bashtar などのPOSIXコマンドを実行
  • 主な使用場面:
    • MSYS2自体のメンテナンス(pacman によるパッケージ管理)
    • POSIX互換環境が必要な作業

2. MSYS2 MINGW64

  • 用途: 64bit のWindowsネイティブアプリ(MinGW-w64)開発環境
  • コンパイラ: mingw-w64-x86_64-gcc
  • パス: /mingw64/bin
  • 適用例: g++gcc を使用して64bit Windowsアプリをコンパイル
  • 主な使用場面:
    • 64bit Windowsネイティブアプリの開発
    • cmake を使ったビルド
    • Visual Studio Code(VSC)との連携で使用推奨

3. MSYS2 UCRT64

  • 用途: 64bit Windowsネイティブアプリ(UCRTベース)の開発環境
  • コンパイラ: mingw-w64-ucrt-x86_64-gcc
  • パス: /ucrt64/bin
  • 適用例: g++gcc を使用してUCRTを利用した64bit Windowsアプリをコンパイル
  • 主な使用場面:
    • Universal C Runtime(UCRT)を使ったプログラム開発
    • Windowsの標準CRT(MSVCRT)よりも最新のUCRTを使用したい場合

4. MSYS2 CLANG64

  • 用途: 64bit Windowsネイティブアプリ(Clangベース)の開発環境
  • コンパイラ: clang
  • パス: /clang64/bin
  • 適用例: clang++clang を使用してWindows向けのアプリをコンパイル
  • 主な使用場面:
    • Clangベースのコンパイラを利用したい場合
    • Clangを使ったパフォーマンス最適化

5. MSYS2 CLANGARM64

  • 用途: ARM64(AArch64)向けのWindowsアプリを開発
  • コンパイラ: clang(ARM64向け)
  • パス: /clangarm64/bin
  • 適用例: clang++clang を使ってARM64 Windows向けアプリを開発
  • 主な使用場面:
    • ARM64アーキテクチャ向けのソフトウェア開発(例: Windows on ARM)
    • Clangを利用したクロスコンパイル

どれを使えばよいか?

  • C++(GCC)開発ならMINGW64(64bit開発)
  • UCRT(新しいランタイム)を使いたいならUCRT64
  • Clangを使うならCLANG64
  • ARM64向け開発ならCLANGARM64
  • MSYS2のパッケージ管理を行うならMSYS2 MSYS

おすすめの使い方(VSCでの開発)

Visual Studio CodeでC++開発を行うなら MSYS2 MINGW64 を使うのが一般的です。

  • MINGW64の環境を開き、以下のコマンドでC++ツールをインストール: pacman -S mingw-w64-x86_64-toolchain
  • その後、VS Codeの「ターミナル」→「デフォルトプロファイル」を MSYS2 MINGW64 に設定。

まとめ

シェル用途コンパイラ
MSYS2 MSYSMSYS2環境のメンテナンスなし
MSYS2 MINGW6464bit Windowsアプリ開発mingw-w64-x86_64-gcc
MSYS2 UCRT64UCRTベースの64bitアプリ開発mingw-w64-ucrt-x86_64-gcc
MSYS2 CLANG64Clangを使った64bitアプリ開発clang
MSYS2 CLANGARM64ARM64 Windows向け開発clang

この情報を参考に、自分の開発用途に合ったものを選んでください!