SDLを入れる
結局Haskell Platformはアンインストールして、ghc6.8.3をインストールした。
http://www.haskell.org/ghc/download_ghc_683.html
wget http://www.haskell.org/cabal/release/cabal-install-0.8.2/cabal-install-0.8.2.tar.gz tar xvzf cabal-install-0.8.2.tar.gz cd cabal-install-0.8.2 sh bootstrap.sh
エラーが出るので手動で実行ファイルをコピー。
cp dist/build/cabal/cabal.exe /usr/local/bin/
cabal update
SDLインストールの続き。
cd SDL-0.6.2 runghc Setup.lhs configure --extra-include-dirs="C:\cygwin\usr\include\SDL" \ --extra-lib-dirs="C:\cygwin\lib" runghc Setup.lhs build runghc Setup.lhs install
$ cd Examples/MacOSX/ $ make ghc -no-hs-main --make SDLWrapper.hs -c [1 of 2] Compiling Main ( Main.hs, Main.o ) [2 of 2] Compiling SDLWrapper ( SDLWrapper.hs, SDLWrapper.o ) ghc -no-hs-main `sdl-config --cflags` -Wall wrapper.c -c ghc -no-hs-main --make wrapper.o SDLWrapper.hs -o test Linking test.exe ... C:/cygwin/usr/local/ghc-6.8.3/gcc-lib/libmsvcrt.a(dcjes00619.o)(.text+0x0): mult iple definition of `ldexp' C:\cygwin\lib/libm.a(t-d001157.o)(.text+0x0): first defined here C:/cygwin/usr/local/ghc-6.8.3/gcc-lib/libmsvcrt.a(dcjes00636.o)(.text+0x0): mult iple definition of `modf' C:\cygwin\lib/libm.a(t-d001244.o)(.text+0x0): first defined here collect2: ld returned 1 exit status make: *** [test] Error 1
うーん。
/lib/libm.aを待避したらリンクできるんだけども…cygwinとmingwの両方のライブラリが参照されてるんだよねぇ…。
$ ghc -no-hs-main --make wrapper.o SDLWrapper.hs -o test -optl-Wl,--allow-multiple-definitio Linking test.exe ...
これでやるとどうなるんだろう。
取り敢えず
svn co http://svn.coderepos.org/share/lang/haskell/nario cd nario vi Makefile # GHCOPTに # -IC:\\cygwin\\usr\\include -optl-Wl,--allow-multiple-definition # を追加 make cygstart nario
これは動いた。終了時にエラーが出るけども。
このやり方だとHaskell Platformで良かった気がする…。あとでもう少しいじってみる。