"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

はすける

ふつける12章途中まで読んだところで何か他のことやりたくなった。

HSDL(SDLHaskell向けラッパ)でグラフィックをやりたい

http://www.f13g.com/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0/Haskell/HSDL/

SDL

http://www.geocities.co.jp/Berkeley/2093/sdl.html
.bashrcに1行追加

export LD_LIBRARY_PATH=/usr/local/lib

SDLをインストール

configure
make
make install

Cabal

GHC標準実装のパッケージ管理ツール。yumみたいなの

HSDLをCabalでコンパイル

$runhaskell Setup.hs configure
Configuring hsdl-0.2.0...
Warning: No license-file field.
$runhaskell Setup.hs build
Preprocessing library hsdl-0.2.0...

Multimedia\SDL\Audio.hsc:243:17: SDL.h:No such file or directory
compiling dist\build\Multimedia\SDL\Audio_hsc_make.c failed
......

失敗したらしい。GHCが新しすぎる(6.8.2)のか?

GHCのバージョンを6.4に落とした

$runhaskell Setup.hs build
Preprocessing library hsdl-0.2.0...
Multimedia\SDL\Audio.hsc:243:17:SDL.h: No such file or directory
***Exception: got error code while preprocessing: Multimedia.SDL.Audio

引っかかってるところ

#include <SDL.h>
#undef main

これはC?っていうか.hscってそもそも何?

CygwinやらWindowsネイティブやらを混在させているので

もう本当にややこしくてたまらんのだが、

とにかくGHCにCygwinのパスが見せられないので、

WindowsのほうのPATHを書き換えてみたり、

Cabalが生成するファイルを書き換えてみたり、

Cabal自体のスクリプトを書き換えてみたり、

いろいろやって、ソースが読み込んでるヘッダファイルが見えるようにはなった。

しかし、ヘッダが見えてもコンパイルが通らん。

コンパイルしようとしているファイルは拡張子がhscなファイルで

(これ、どういうファイルか知らないんだけど…)

なんだか、途中に #include てな感じで

Cのヘッダファイルをインクルードしている。

Haskellソース中でCのヘッダをインクルードしたらどうなるのか

よく分からないのだが、とにかくその中でエラーが出てコンパイルが通らない。

HSQL - 純粋関数型雑記帳

そろそろCygwinの限界を感じる。
一日一チベットリンク

ラサ燃える(その18)毎日新聞西岡省二記者は「名誉漢族」か : 天漢日乗