Skip to content

Instantly share code, notes, and snippets.

@Hamayama
Last active June 16, 2024 11:47
Show Gist options
  • Save Hamayama/eb4b4824ada3ac71beee0c9bb5fa546d to your computer and use it in GitHub Desktop.
Save Hamayama/eb4b4824ada3ac71beee0c9bb5fa546d to your computer and use it in GitHub Desktop.
MSYS2/MinGW-w64 (64bit/32bit) インストール手順 メモ

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

  • 自分がインストールしたとき (2022年9月) の参考用のメモです。
    (情報が古くなっている可能性があります)
  1. MSYS2 のページ
    https://msys2.github.io/
    から、MSYS2 のインストーラ ( msys2-x86_64-20220904.exe ) を取得して実行します。
    (注意:32bit 版のインストーラは、提供されなくなりました。
    https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported )

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

    pacman -Syuu
    

    「Proceed with installation? [Y/n]」
    に y を入力します。
    「To complete this update all MSYS2 processes including this terminal will be closed. Confirm to proceed [Y/n]」
    に y を入力します。
    再度、プログラムメニューから MSYS2 の MSYS Shell を選択して、
    上記コマンドをもう1回実行します。

  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 以下が 3GB くらいになりました。

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

開発環境の起動

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

  • MSYS2/MinGW-w64 (32bit) の開発環境を起動する場合は、
    プログラムメニューから MSYS2 の MINGW32 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
      

その他

  • パッケージの更新方法
    pacman のバージョンによって、パッケージの更新方法が異なります。
    以下のページがくわしいです。
    http://qiita.com/k-takata/items/373ec7f23d5d7541f982

  • 環境変数 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 ネイティブのスレッドも使うこと自体は可能です)

  • autotools のインストール
    autotools (autoconf 等) は、mingw-w64-x86_64-toolchain から分離されました。
    (参考URL:https://www.msys2.org/news/#2021-12-22-ongoing-cleanup-of-the-base-devel-package-group )
    必要であれば、以下のコマンドでインストールします。

    pacman -S mingw-w64-x86_64-autotools
    

    32bit 環境では、以下になります。

    pacman -S mingw-w64-i686-autotools
    

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

(2016-7-13)(2016-10-13)(2018-8-22)(2022-2-12)(2022-9-13)

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