Linux上にMinGWの環境を作る

前回Kubuntuを入れたと言ったのだけれど、
結局OpenSUSEを経てgOSに落ち着く事にした。
KDEがいまいちしっくり来ない。

とりあえず次のOS入れ替えまではこの環境を育てるつもり。
今日はMinGWを導入したのでその手順を忘れない内に。


【必要材料の確保】
MinGWの公式(http://sourceforge.net/project/showfiles.php?group_id=2435)から
・mingwrt-3.15-mingw32-dev.tar.gz (Mingw-Runtime)
・w32api-3.12-mingw32-dev.tar.gz (Win32API)
binutils-2.18.50-20080109-2-src.tar.gz (binutils
gcc-core-3.4.5-20060117-2-src.tar.gz (gcc
gcc-g++-3.4.5-20060117020src.tar.gz (g++)

SDLの公式(http://www.libsdl.org/extras/win32/common/)から
directx-devel.tar.gz
opengl-devel.tar.gz


【インストール先・作業ディレクトリの確保】
$ mkdir ~/mybin/cross-tools
$ mkdir ~/mybin/cross-tools/i386-mingw32msvc
$ mkdir ~/Trash/binutils-i386
$ mkdir ~/Trash/gcc-i386


【インストール作業】
$ cd ~/mybin/cross-tools/i386-mingw32msvc
$ tar zxvf ~/Trash/mingwrt-3.15-mingw32-dev.tar.gz
$ tar zxvf ~/Trash/w32api-3.12-mingw32-dev.tar.gz
$ tar zxvf ~/Trash/directx-devel.tar.gz
$ tar zxvf ~/Trash/opengl-devel.tar.gz

$ cd ~/Trash/binutils-i386
$ ../binutils-2.18.50/configure --prefix=/home/hayato/mybin/cross-tools --target=i386-mingw32msvc
$ time make
$ make install

$ cd ~/Trash/gcc-i386
$ ../gcc-3.4.5-20060117-2/configure --prefix=/home/hayato/mybin/cross-tools
--target=i386-mingw32msvc --bindir=/home/hayato/mybin/cross-tools/bin
$ time make
$ make LANGUAGES="c c++" install



以上で ~/mybin/cross-tools 以下にMingwロスコンパイルの環境が整うはず。

途中で「i386-mingw32msvc-ar が見つかりません」とか
「stdio.h が見つかりません」とかエラーに遭遇したものの、
何だかんだやってる間にクリアできてた。

参考にさせて頂いたサイト様↓
http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/MinGW/
http://bitwalk.hp.infoseek.co.jp/
ありがとうございました!




で、なぜMinGWの環境を整えようかと思ったかというと
Windows上のioLanguageOpenGLを使いたいが為に自力でコンパイルしようと色気づいたのが発端でした。

なので、その目的を果たすために意気揚々とコンパイルしてみたら・・・。
「as : unrecognized option '-Qy'」をいう意味不明のエラーが。
ググってみた所、 as と gcc のバージョンが合っていないだろうとの事なのだが
それを解決する方法が分からない。
MinGWgcc 使ってコンパイルする時の as の指定ってできるのかしら。
要調査。

で、とりあえず仕方無いのでLinux用のioLanguageコンパイルする事に。
当然MinGWは使わずに $ make vm ・・・うまく行った!
OpenGLアドオンも上手くビルドできたようで、そのまま $ sudo make install 。
その後 io インタプリタを起動してOpenGLの挙動を調べると・・・。
なんと「error while loading shared libraries:」ってエラーが。
ググったら インストールしたライブラリが上手く認識できていない為に起こるものらしい。
なのでライブラリを再読み込みさせるコマンド(?) sudo ldconfig を実行。
問題解決。動いた動いた一安心。


しかし、全然Linuxの使用スキルが上がらない。
もっと密に接していかないといかんのかな。
頑張ろう。