MinGW cross compiler on MacOS X

いままで、GMV の Windows 用のバイナリを build するには VMware の上の Windows を使ってたんだけど、やっぱり面倒なので MacOS からなんとかしたい、と思ってやってみた。MacOS X バイナリと、ソースの snapshot は script 一発でアップロードできるようになってたので、これで Windows 版もコマンド一発だ!
install prefix は /Users/yasu/mingw
展開したアーカイブ:
cd ~/mingw
tar xvf ~/compile/w32api-3.9.tar
tar xvf ~/compile/mingw-runtime-3.12.tar
stdio.h とかは mingw-runtime に入ってるんですね。
/usr/include がないので、怒られないようにリンク。
mkdir usr
cd usr
ln -s ../include .
binutils 作る:
../binutils-2.17/configure –prefix=/Users/yasu/mingw –target=i386-pc-mingw32
binutils の入ったディレクトリに include って必要? (よくわからんちん)
cd ~/mingw/i386-pc-mingw32
ln -s ../include .
gcc つくるぜー:
set path = ( ~/mingw/bin $path )
../gcc-4.0.4/configure –with-gcc –with-gnu-ld –with-gnu-as –host=i386-apple-darwin8.9.1 –target=i386-pc-mingw32 –prefix=/Users/yasu/mingw –enable-threads –disable-nls –enable-languages=c,c++ –disable-win32-registry –disable-shared –enable-sjis-exceptions –with-sysroot=/Users/yasu/mingw
これだと
checking main in -lm… configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
といわれる。libm がないとか、そういう問題じゃなくて、ただ単に正しい linker が呼び出せていないとか、そういう感じっぽい。で、結局、–with-sysroot ではなくて –with-{headers,libs,build-time-tools} を使った。
../gcc-4.0.4/configure –with-gcc –with-gnu-ld –with-gnu-as –host=i386-apple-darwin8.9.1 –target=i386-pc-mingw32 –prefix=/Users/yasu/mingw –enable-threads –disable-nls –enable-languages=c,c++ –disable-win32-registry –disable-shared –enable-sjis-exceptions –with-headers=/Users/yasu/mingw/include –with-libs=/Users/yasu/mingw/lib –with-build-time-tools=/Users/yasu/mingw/bin
やったぜ!

コメントを残す