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ができるが、この違いはパスの違いである。
1 2 3 4 5 6 7 8 9 |
$ echo $PATH /mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/zelda/bin $ echo $MANPATH /mingw32/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man $ echo $MSYSTEM MINGW32 $ echo $PKG_CONFIG_PATH /mingw32/lib/pkgconfig:/mingw32/share/pkgconfig $ |
これとは別のgccもあってそれはmsys2で動く実行ファイルを作るためのgcc。これはmsys2-develに含まれる。msys2.exeを起動すると上記パスに/mingw32などが含まれない。