● MinGW + MSYS のインストール体験 (WinXP, 2003/11/20)
いろいろ情報はあるのですが、もう一つよくわからない。
2 〜 3 回試行錯誤の後、下記の方法で MinGW + MSYS をインストールしました。
まず、下記を入手します。 http://www.mingw.org/index.shtml
MSYS-1.0.10-rc-2.exe
MinGW-3.1.0-1.exe
● MSYS-1.0.10-rc-2.exe を Windows Explorer で実行します。
インストールするフォルダーはデフォールトのままにしました。
C:\msys\1.0
解釈がむづかしいメッセージが出てきます(私にとっては)。
This is a post install process that will try to normalize between your MinGW install if any as well as your previous MSYS installs if any. I don't have any traps as aborts will not hurt anything. Do you wish to continue with the post install? [yn ] y Do you have MinGW installed? [yn ] n When you install MinGW I suggest you install it to C:/mingw (replace C: with the drive of your choice). Then create an /etc/fstab file with a line that has a value similar to: C:/mingw /mingw
● 実は、これは無視してもいいらしいのです。(*1)
続いて MinGW-3.1.0-1.exe を Windows Explorer で実行します。
インストール先は下記のフォルダーとしました。
C:\msys\1.0\MinGW
● これで一応完了です。 ショートカット MSYS は C:\msys\1.0\msys.bat にリンクされており、実行すると
rxvt ターミナルエミュレーターが動き、これがシステムコンソール?になります。
gcc, cpp, ld, make, sh のパス名を which で調べると、
/mingw/bin/gcc
/mingw/bin/cpp
/mingw/bin/ld
/bin/make
/bin/sh
普通の /usr/include/ は /mingw/include/ にあります。 lib, doc も /mingw/ の下にあります。
(実は /usr/mingw/ と /mingw/ は同じです。 ややこしいな。)
これなら動きそうです。 実際に Cygwin 下で最近作った WIN32API を多用するプログラムをそのまま make でビルドしてみたところ、問題なく実行できました。
Cygwin 環境で作ったプログラムを Windows Explorer で実行すると DLL がないよ、というエラーになりますが、MinGW 下でビルドすれば実行可能です。
● /usr/bin と /bin が同じ! それどころか / と /usr が同じ! `mount' の表示は傑作です。 /etc/passwd と /etc/group がない! (man は追加インストールすれば使える模様。)
.profile はどうするの? どうやら /etc/profile を ~/.profile にコピーしてきて編集すればよいことがわかりました。 msys\1.0\msys.bat を変更すれば、コンソールターミナルの見え方を変えられます。
インストールしたサイズが Cygwin と比べて一桁も小さいのだから、まあいいか。
(注 *1) msys\1.0\doc\msys\README.rtf より抜粋
Working with MinGW:
If you already have MinGW installed then simply bind the path to MinGW to the /mingw mount point
in the /etc/fstab as described above.
If you don't have MinGW installed already then simply unarchive the MinGW tar.gz file
in the /mingw directory. DO NOT unarchive the MinGW tar.gz file in the / directory.