MinGW 64 bit 版 のセットアップ

2015年2月15日

はじめに

MinGW 64 bit 版のセットアップメモ。環境は Windows 7 Home Premium 64 bit。

MinGW 64 bit 版の入手

MinGW 64 bit 版のインストーラ "mingw-w64-install.exe" を下記からダウンロードする。

MinGW-w64 - for 32 and 64 bit Windows

MSYS を以下からダウンロード。

MinGW - Minimalist GNU for Windows

"Files" の "MSYS" - "Base" - "msys-core" - "msys-1.0.11" から "MSYS-1.0.11.exe" をダウンロード。

インストール

"mingw-w64-install.exe" を実行し、MinGW 64 bit のインストールを行う。

  • "Settings" の "Architecture" で "x86_64" を選択する。
  • インストール後、"C:\Program Files\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin" をパスに追加する。

"MSYS-1.0.11.exe" を実行し、MSYS のインストールを行う。MSYS インストールの最後で、コマンドプロンプトが開いていくつか質問されるかもしれない。

確認

MSYS を起動し、たとえば gdb を起動する。タスクマネージャのプロセスで gdb.exe が 64 bit で起動していれば (名前に "*32" がついていなければ) OK。gdb は "q" で終了する。

環境設定

MSYS は sh を起動し、ホームディレクトリの ".bashrc" を読み込まないが、".profile" は読み込むので、".profile" で ".bashrc" を読み込むように指定する。

.profile

. ~/.bashrc

あとの設定は ".bashrc" に記述する。

make は、 MSYS の make ではなく MinGW の mingw32-make が使われるようにエイリアスを設定しておいたほうがよいかもしれない。

alias make='mingw32-make'

プログラムのコンパイル

MinGW-w64 の gcc や g++ でコンパイルしたプログラムは、libgcc_s_sjlj-1.dll や libstdc++-6.dll に依存する場合がある。これらに依存しないようにするには、オプション "-static-libgcc" や "-static-libstdc++" をつけてコンパイルすればよい。

コンパイルしたプログラムがどのライブラリに依存しているのかを調べるには、objdump を使って以下のようにする。

$ objdump -p a.exe | grep DLL