MSYS2をインストールすると、複数の異なるシェル(ターミナル)が登録されます。それぞれの役割を説明します。
1. MSYS2 MSYS
- 用途: UNIXライクな環境を提供
- コンパイラ: なし(基本的なPOSIX互換環境)
- パス:
/usr/bin
- 適用例:
bash
やtar
などのPOSIXコマンドを実行 - 主な使用場面:
- MSYS2自体のメンテナンス(
pacman
によるパッケージ管理) - POSIX互換環境が必要な作業
- MSYS2自体のメンテナンス(
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 MSYS | MSYS2環境のメンテナンス | なし |
MSYS2 MINGW64 | 64bit Windowsアプリ開発 | mingw-w64-x86_64-gcc |
MSYS2 UCRT64 | UCRTベースの64bitアプリ開発 | mingw-w64-ucrt-x86_64-gcc |
MSYS2 CLANG64 | Clangを使った64bitアプリ開発 | clang |
MSYS2 CLANGARM64 | ARM64 Windows向け開発 | clang |
この情報を参考に、自分の開発用途に合ったものを選んでください!