##【はじめに】
MSYS2(64bit版)には3つの起動スクリプトが存在します。
- msys2_shell.bat
- mingw64_shell.bat
- mingw32_shell.bat
これらの中からどのスクリプトからshellを起動するべきかをまとめておきます。
##【基本事項】
PACMAN でインストールできるパッケージは msys / mingw32 / mingw64 の3つのグループにカテゴライズされており、それぞれインストールされるアプリケーション(ライブラリ)の内容やインストール先が異なります。
グループ名 | インストール先 | インストールされるアプリケーション(ライブラリ) |
---|---|---|
msys | /user | MSYS2に依存した(64bit/32bit)アプリケーション(ライブラリ)郡(以下MSYS2アプリ) |
mingw64 | /mingw64 | 64bitのWindowsネイティブアプリケーション(ライブラリ)郡(以下64bitネイティブアプリ) |
mingw32 | /mingw32 | 32bitのWindowsネイティブアプリケーション(ライブラリ)郡(以下32bitネイティブアプリ) |
混ぜるな危険
MSYS2アプリとネイティブアプリは同じ環境で動作しているように見えますが別ものです。/mingw64(32) 以下の実行ファイルやライブラリを /user 以下にコピーや移動をすることは行わないようにしましょう。
【各起動スクリプトの動作】
-
msys2_shell.bat
実行環境として、MSYS2アプリが利用可能
開発環境として、MSYS2アプリを作成するためのコンパイル環境(gcc)を提供 -
mingw64_shell.bat
実行環境として、64bitネイティブアプリとMSYS2アプリが利用可能
(優先度は 64bitネイティブアプリ > MSYS2アプリ)
開発環境として、64bitネイティブアプリを作成するためのコンパイル環境(mingw64)を提供 -
mingw32_shell.bat
実行環境として、32bitネイティブアプリとMSYS2アプリが利用可能
(優先度は 32bitネイティブアプリ > MSYS2アプリ)
開発環境として、32bitネイティブアプリを作成するためのコンパイル環境(mingw32)を提供
上記のように動作する為の環境変数の設定処理は /etc/profile にて行われています。
##【結論】
* 開発環境(gcc)が必要な場合は開発するターゲットに応じて起動スクリプトを選択。
- MSYS2上で動作するアプリを作成する場合はmsys2_shell.batで起動
- 64bitネイティブアプリを作成する場合はmingw64_shell.batで起動
- 32bitネイティブアプリを作成する場合はmingw32_shell.batで起動
- 特にターゲットを設定せずに、単にC/C++言語の勉強がしたいなどの場合はmsys2_shell.batで十分かも・・
* 単にWindows上で動作するSHELL環境がほしい場合は基本的にmingw64(32)_shell.batで起動。
こうすることで、あまり気環境を気にすることなくMSYS2アプリとネイティブアプリの両方が使用可能となります。
ただし
> 特にMSYS2から提供されているネイティブアプリのパッケージを使う予定が無い
> MSYS2のパッケージだけで十分
> shell+git環境があれば十分
> フォルダ構成をシンプルに保ちたい
等な場合はmsys2_shell.batで起動でよいと思います。