Instantly share code, notes, and snippets.

Embed
What would you like to do?
MSYS2/MinGW-w64 (64bit/32bit) インストール手順 メモ

MSYS2/MinGW-w64 (64bit/32bit) インストール手順 メモ

  • 自分がインストールしたとき (2018年8月) の参考用のメモです。
    (情報が古くなっている可能性があります)
  1. MSYS2 のページ
    https://msys2.github.io/
    から、MSYS2 のインストーラ (64bit版は msys2-x86_64-20180531.exe) を取得して実行します。

  2. プログラムメニューから MSYS2 の MSYS Shell を選択して、以下のコマンドを実行します。

    pacman -Syuu
    

    以下のメッセージが表示された場合には、Shell の画面を 右上の×ボタンで閉じ、
    再度 MSYS2 の MSYS Shell を開いて、上記コマンドをもう1度実行します。

    警告: terminate MSYS2 without returning to shell and check for updates again
    警告: for example close your terminal window instead of calling exit
    
  3. MinGW-w64 (64bit) の開発環境をインストールします。

    pacman -S base-devel
    pacman -S mingw-w64-x86_64-toolchain
    
  4. 必要であれば、MinGW-w64 (32bit) の開発環境をインストールします。

    pacman -S mingw-w64-i686-toolchain
    

    デフォルトでは、インストール場所は以下になります。
    ディスクの使用量は、c:\msys64 以下が 2GB くらいになりました。

    c:\msys64         : MSYS2 (64bit)
    c:\msys64\mingw64 : MinGW-w64 (64bit)
    c:\msys64\mingw32 : MinGW-w64 (32bit)
    
  • インストール手順は以上です。

開発環境の起動

  • MSYS2/MinGW-w64 (64bit) の開発環境を起動する場合は、
    プログラムメニューから MSYS2 の MinGW 64bit Shell を実行します。

  • MSYS2/MinGW-w64 (32bit) の開発環境を起動する場合は、
    プログラムメニューから MSYS2 の MinGW 32bit Shell を実行します。

  • mintty を使わずに、コマンドプロンプトから開発環境を起動する場合には、以下のようにします。

    • MSYS2/MinGW-w64 (64bit) の開発環境を起動する場合は、
      コマンドプロンプトを開いて、以下を実行します。

      set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\local\bin;C:\msys64\usr\bin;C:\msys64\bin;%PATH%
      set MSYSTEM=MINGW64
      bash
      
    • MSYS2/MinGW-w64 (32bit) の開発環境を起動する場合は、
      コマンドプロンプトを開いて、以下を実行します。

      set PATH=C:\msys64\mingw32\bin;C:\msys64\usr\local\bin;C:\msys64\usr\bin;C:\msys64\bin;%PATH%
      set MSYSTEM=MINGW32
      bash
      

その他

  • ファイルの衝突チェックエラー
    以下のファイルが存在すると、インストール時にエラーが発生します。

    c:\msys64\mingw64.exe  
    c:\msys64\mingw32.exe  
    

    この場合には、上記のファイルを消す (またはリネームする) か、もしくは、
    以下のフォルダを手動で作成してから、再度インストールを行ってください。

    c:\msys64\mingw64  
    c:\msys64\mingw32  
    

    (参考URL : https://sourceforge.net/p/msys2/mailman/message/35398330/ )

  • Shell (mintty) 上で、スクロールバーが表示されない
    ディスプレイの高DPI設定がされている環境で、mintty v2.5.0 を使用すると発生するようです。
    (参考 URL : https://github.com/mintty/mintty/issues/597 )
    対策としては、
    https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/
    (32bit版 の場合は https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/ )
    から、mintty v2.4.2 のファイルを取得して展開し、中の mintty.exe を、
    c:\msys64\usr\bin\mintty.exe に上書きすることが考えられます。

  • pacman のバージョン
    pacman のバージョンによって、パッケージの更新方法が異なります。
    (参考URL : http://qiita.com/k-takata/items/373ec7f23d5d7541f982 )

  • Shell 起動用のショートカットの変更
    起動用のショートカットの変更がありました。
    (参考URL : http://qiita.com/k-takata/items/2220ba2e8dd5bcba3961 )

  • 環境変数 PATH の設定
    デフォルトでは、Windows の環境変数 PATH の設定を 引き継がないようになりました。
    これを 引き継ぐようにしたい場合には、
    Windows の環境変数に MSYS2_PATH_TYPE を追加し、値を inherit に設定してください。
    (参考URL : https://sourceforge.net/p/msys2/discussion/general/thread/dbe17030/ )

  • スレッドモデルと例外処理
    上記のインストール方法では、スレッドモデルと例外処理は以下のように固定となります。

    MinGW-w64 (64bit) : threads=posix, exceptions=seh
    MinGW-w64 (32bit) : threads=posix, exceptions=dwarf2
    

    このため、作成した実行ファイルは、libwinpthread-1.dll に依存する場合があります。
    この dll への依存をなくしたい場合には、threads=win32 のものを、
    自前でインストールする必要があるようです (詳細未確認)。
    (参考URL : https://sourceforge.net/p/msys2/tickets/24/
    http://mingw-w64.org
    http://mingw-w64.org/doku.php/download
    http://blog.practical-scheme.net/shiro/20151217-msys2-mingw64 )

    (備考 : threads=posix であっても、Windows ネイティブのスレッドも使うこと自体は可能です)

  • 成果物の混在
    32bitと64bitの成果物の混在には注意が必要です。
    (例えば、32bitのexeから、64bitのdllを呼び出すとエラーになります)

(2016-7-13)(2016-10-13)(2018-8-22)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment