Msys2 and ming-w64

msys2とming-w64が分かりづらいので少し調べた。

MSYS2

msys2はCygwinをベースにしていてmsys-2.0.dllがパスの切り替えやforkなど(多分)を行う。cygwinにはコマンドラインパッケージマネージャがないので、pacmanを有するmsys2の方がインストールがしやすい。

msys-2.0.dllに依存しない通常のexeをmsys2から起動するとパスの変換が行われる(コマンドラインの)。cygwinではこういうことは行われないようだ。

MINGW

Mingw-w64で一つの名前。Mingwの64ビットバージョンの意味ではない。これらはmsys2.0.dllに依存していないツールでWindows向けにビルドされたもの。
msys2でgccをインストールしようとすると以下の2つがある。

mingw-w64-i686-gcc
mingw-w64-x86_64-gcc

mingw-w64で一つの名前なのでi686が32bitでx86_64が64bitのgcc、これらをインストールするとそれぞれ/mingw32/binと/mingw64/binに置かれる。msys2をインストールすると、mingw32.exeとmingw64.exeができるが、この違いはパスの違いである。

これとは別のgccもあってそれはmsys2で動く実行ファイルを作るためのgcc。これはmsys2-develに含まれる。msys2.exeを起動すると上記パスに/mingw32などが含まれない。