読者です 読者をやめる 読者になる 読者になる

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
を追加する。