MinGW 64 bit 版 のセットアップ

2013年6月27日

はじめに

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

MinGW 64 bit 版の入手

MinGW 64 bit 版を以下からダウンロード。

MinGW-w64 - for 32 and 64 bit Windows

"Files" の "Toolchains targetting Win64" - "Personal Builds" - "sezero_4.5_20111101" から "mingw-w64-bin_x86_64-mingw_20111101_sezero.zip" をダウンロード。

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

MinGW - Minimalist GNU for Windows

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

インストール

  1. フォルダ "C:\MinGW" を作成。
  2. "mingw-w64-bin_x86_64-mingw_20111101_sezero.zip" の中の "mingw64" の中身を "C:\MinGW" に展開。
  3. "MSYS-1.0.11.exe" を実行し、MSYS のインストール作業を行う。

MSYS インストールの最後で、コマンドプロンプトが開いていくつか質問される。

  1. はじめの 2 つの質問にはどちらも "y" と入力。
  2. 3 つ目の質問 "Where is your MinGW installation?" には、"C:/MinGW" と入力 (引用符は必要ない)。
  3. なにか言われるが、気にせず Enter キーを押して終了。

確認

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

環境設定

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

.profile

. ~/.bashrc

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

追加インストール (必要であれば)

pthreads

"C:\MinGW" に "pthreads-w64.zip" があるので、これをその場に展開する。

zlib

MinGW-w64 - for 32 and 64 bit Windows の "Files" の "External binary packages (Win64 hosted)" - "Binaries (64-bit)" から "zlib-1.2.5-bin-x64.zip" をダウンロード。

"zlib-1.2.5-bin-x64.zip" の "zlib" の中の "bin" を "C:\MinGW" に展開、"include", "lib" を "C:\MinGW\x86_64-w64-mingw32" に展開する。

regex

MinGW - Minimalist GNU for Windows の "Files" の "Other" - "UserContributed" - "regex" から "mingw-libgnurx-2.5.1-src.tar.gz" をダウンロード。

コンパイル & インストール

$ tar xvzf mingw-libgnurx-2.5.1-src.tar.gz
$ cd mingw-libgnurx-2.5.1
$ ./configure
$ make
$ cp libgnurx-0.dll /c/MinGW/bin
$ cp libgnurx.dll.a /c/MinGW/x86_64-w64-mingw32/lib
$ cp libregex.a /c/MinGW/x86_64-w64-mingw32/lib
$ cp regex.h /c/MinGW/x86_64-w64-mingw32/include

flex

Flex for Windows の "Download" の "Complete package, except sources" から "flex-2.5.4a-1.exe" をダウンロード。

  1. "flex-2.5.4a-1.exe" を実行してインストール。
  2. .bashrc でパスを追加。
    export PATH=$PATH:"/c/Program Files (x86)/GnuWin32/bin"
    

プログラムのコンパイル

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

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

$ objdump -p a.exe | grep DLL