MinGW/MSYS をインストールする

no extension

この記事では MinGW (Minimalist GNU for Windows)および MSYS (Minimal SYStem)のインストールについて紹介します。 MinGW および MSYS は Windows プラットフォーム上で動作する GNU ツールキットです。 GCC (GNU Compiler Collection)をはじめとするプログラミングに必要な各種ツールが集められています。 MinGW/MSYS は全てフリーで提供されていて, ユーザは自由に利用することができます。 同様のものとしては Cygwin がありますが, Cygwin で作成したプログラムが POSIX 互換のランタイムライブラリ上で動作するのに対し, MinGW で作成したプログラムは完全に Win32API 上で動作させることが可能です。 従って UNIX 系のプログラムの移植の際には完全な互換が取れない場合があります。

まず MinGW のインストールからはじめましょう。 昔と違い今は MinGW のインストールはずいぶん簡単になりました。 MinGW のサイトからインストーラをダウンロードします。 現時点の最新版は 5.0.3 (Candidate Version)です。

インストーラを起動したらウィザードに従って必要なモジュールのダウンロードとインストールを行います。 詳しい操作については「C-Compiler Wiki MinGW / インストール」が参考になります。 ウィザードの途中で設定するオプションはそれぞれ好みで決めていいと思いますが, ここでは以下のように指定することにします。

Install or just download files? :Download and install
Whitch MinGW package do you wish to install? :Current
Check the components :"Minimal" + "g++ compiler"
Destination Folder :C:\MinGW

MinGW インストール完了後, 必要に応じて以下のモジュールも追加しておくといいかもしれません。

次は MSYS です。 MinGW のダウンロードページから最新版のインストーラをダウンロードします。 現時点の最新版は以下のファイルです。

インストーラを起動したらウィザードに従ってインストールを行います。 詳しい操作については同じく「C-Compiler Wiki MinGW / インストール」が参考になります。 インストール先は「C:\msys\1.0」としておきましょう。 最後に MinGW のインストール先ディレクトリを問い合わせてきます。 間違えないようにしてください。 先ほどの設定であれば「c:/MinGW」と入力すれば大丈夫です。

MSYS インストール完了後, 更に開発用のツール群 msysDTK をインストールします。 以下のファイルを順に適用してください。

  1. msysDTK-1.0.1.exe
  2. bison-2.0-MSYS.tar.gz
  3. msys-autoconf-2.59.tar.bz2
  4. msys-automake-1.8.2.tar.bz2
  5. msys-libtool-1.5.tar.bz2
  6. bash-2.05b-MSYS.tar.bz2
  7. tar-1.13.19-MSYS-2005.06.08.tar.bz2

デバッガ(gdb)が必要な方は以下のファイルをダウンロードしてインストールしてください。

MSYS のインストールが完了するとデスクトップに MSYS のアイコンが作成されます。 このアイコンをクリックするとシェルが起動します。 起動直後のディレクトリは MSYS のホームディレクトリになっています。 (usename は現在ログインしているユーザ名です)

MSYS のホームディレクトリ :/home/usename
実際のフォルダ :C:\msys\1.0\home\usename

このシェル上で作業してもいいのですが, コマンドを起動するだけなら Windows のコマンドプロンプトからでも可能です。 コマンドプロンプトを利用するには環境設定が必要です。 例えば以下のように設定します。

PATH=C:\msys\1.0\bin;C:\MinGW\bin;...

実際の設定方法については「C-Compiler Wiki Misc / 環境変数の設定」が参考になります。

では動作確認を兼ねて zlib および bzip2 をビルド&インストールしてみましょう。 現時点で zlib の最新版は 1.2.3, bzip2 の最新版は 1.0.3 です。

まず zlib のソースコード一式を C:\msys\1.0\home\usename に展開します。 先ほどの MSYS シェルを起動し, 以下の手順でビルド&インストールを行います。

$ cd ~/zlib-1.2.3/
$ ./configure
$ make install prefix=/mingw

これで zlib ライブラリのビルドとインストールが完了します。 該当ファイルがちゃんとコピーされているかどうか C:\MinGW\include や C:\MinGW\lib をチェックしてみてください。

bzip2 も同じようにソースコード一式を展開します。 ただし bzip2 のソースコードでは MinGW でビルドすることを考慮していないため若干の修正が必要になります。 修正内容を抜き出したパッチファイル bzip2-1.0.3.diff を用意しましたので, このファイルを使ってパッチを当ててからビルドを行います。 bzip2-1.0.3.diff をソースコードを展開した bzip2-1.0.3 ディレクトリにコピーし, 以下の手順でビルド&インストールを行います。

$ cd ~/bzip2-1.0.3/
$ patch < bzip2-1.0.3.diff
$ make install PREFIX=/mingw

うまくいきましたでしょうか。 該当ファイルがちゃんとコピーされているかどうか C:\MinGW\include や C:\MinGW\lib をチェックしてみてください。 bzpi2 では configure は不要です。 また make 時のパラメータが zlib と異なっていますので注意してください。 ビルドでは bzip2.exe と bzip2recover.exe が生成されますが /mingw/bin にコピーする際に拡張子が削除されてしまいます。 これらのバイナリを使う際には拡張子を元に戻しておいてください。 strip コマンドでサイズを小さくするのもいいでしょう。

$ cd /mingw/bin
$ mv bzip2 bzip2.exe
$ strip bzip2.exe
$ mv bzip2recover bzip2recover.exe
$ strip bzip2recover.exe

いかがでしたでしょうか。 このように MinGW/MSYS を使って UNIX 系のコマンドを比較的簡単に Windows プラットフォームに移植することができます。