ログ日記

作業ログと日記とメモ

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を待避したらリンクできるんだけども…cygwinmingwの両方のライブラリが参照されてるんだよねぇ…。

$ 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で良かった気がする…。あとでもう少しいじってみる。