MSYS2 メモ
なんかぶっ壊れたので入れ直した。メモ。
MSYS2は最初3種類の起動ファイルがある。
mingw32.exe
mingw64.exe
msys2.exe
昔は拡張子がbatだったと思うんだけど……。
こいつらは同じようにMSYS2内のシェルを立ち上げるだけなのだが、環境変数MSYSTEMにセットする値が違うらしい。
ただConEmuからはzsh.exeへのパスを直接指定しないといけないから、
set CHERE_INVOKING=1 & set MSYSTEM=MSYS & C:\msys64\usr\bin\zsh.exe --login -i -new_console:C:"%ConEmuDrive%\msys64\msys2.ico"
みたいな感じで書く。
また、gccなどが置いてあるリポジトリもこの3つにわかれている。
こんな感じ。
mingw32 mingw-w64-i686-gcc 6.2.0-2 mingw32 mingw-w64-i686-gcc-ada 6.2.0-2 mingw32 mingw-w64-i686-gcc-fortran 6.2.0-2 mingw32 mingw-w64-i686-gcc-libgfortran 6.2.0-2 mingw32 mingw-w64-i686-gcc-libs 6.2.0-2 mingw32 mingw-w64-i686-gcc-objc 6.2.0-2 mingw64 mingw-w64-x86_64-gcc 6.2.0-2 mingw64 mingw-w64-x86_64-gcc-ada 6.2.0-2 mingw64 mingw-w64-x86_64-gcc-fortran 6.2.0-2 mingw64 mingw-w64-x86_64-gcc-libgfortran 6.2.0-2 mingw64 mingw-w64-x86_64-gcc-libs 6.2.0-2 mingw64 mingw-w64-x86_64-gcc-objc 6.2.0-2 msys gcc 5.3.0-3 [installed] msys gcc-fortran 5.3.0-3 msys gcc-libs 5.3.0-3 [installed] msys mingw-w64-cross-gcc 5.3.0-1
32、64はそのままwindowsで動くexeをコンパイルできる。もちろんgtkとかがマジで動くのかはよくわからないけど……。
msysでつくったexeはmsysでしか動かない。
クロスコンパイラはなんか特殊な用途があった気がする。
今回は、どうせ競技プログラミングでしか使わないだろうと思ってmsysにした。
何かメリットがあるのか、というのはよくわからないが……。
数日archの設定に明け暮れていたのだけど、network managerのGUIが動かない(付属のCUIは動く)のでガン萎えしてwindowsに帰還した(そこで萎えるのかよ、という感じではある)。
なんだかんだwindowsは使いやすいし、xyzzy + MSYS2の素朴な環境もけっこう気に入っている。
パッケージが多いemacsの方が便利ではあるのだが、xyzzyは動作がやたら速いし、何より手に馴染んでいる。
Archとかを使って全手動でいろいろ管理してるのがかっこいい、みたいな気持ちはあるのだが、しばらくはwindowsから離れられそうにないかも。
[追記]
仕様が変わって、今のMSYS2はデフォルトだとWindowsのPathを参照しないことになっている。
外側のPathを見たいときは、windowsのユーザー環境変数に
MSYS2_PATH_TYPE inherit
を追加する。