LoginSignup
14
16

More than 5 years have passed since last update.

MSYS2をどのスクリプトから起動するべきか

Posted at

【はじめに】

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で起動でよいと思います。

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16