diaryこの広告は、90日以上更新していないブログに表示しています。SDLSDLのHaskellバインディングはいくつかありますが、この記事ではHackageのSDLを使って説明しています。Windows環境だとCabalではうまく入らなかったりするので、直接ソースからビルドする必要があるかもしれません。Main.hsのようにコンパイルしても、SDL_mainが見つからないなどのエラーが出てコンパイルできません。SDLを使ったプログラムでは本来、ユーザが作成したmain関数はSDL.hのマクロによってSDL_mainにリネームされ、SDLライブラリの内部にある本当のmain関数がSDL_mainを呼び出すことになってるのですが、ghcはその面倒まで見てくれないのでSDL_mainが作られず、エラーになってしまいます。これを回避するためには、C言語で書いたmainの中からFFIでHaskellを呼び出した上で、元のmainをSDL.hでSDL_mainに書き換えさせる必要があります。Haskellの関数をエクスポートするまずは画面を表示するだけのHaskellコードを書いて、Cのmainから呼び出すためのhs_mainをエクスポートします。HsMain.hsのようにコンパイルしようとすると、HsMain_stub.cとHsMain_stub.hというファイルが生成されます。これがHaskellコードをCから呼び出すためのインターフェースになります。Cから呼び出す次に、このインターフェースを通してHaskellコードを呼び出すCコードを用意します。c_main.cのようにコンパイルすると、実行ファイルを生成することが出来ます。実行結果GHCのFFIに関する詳しいドキュメントはこの辺にあります。21:57HaskellでのSDLの使い方Tweet広告を非表示にする関連記事2015-03-10GCCのOpenMP実装(libgomp)のライセンス最近gccでOpenMPを使っていて、ふとライセンスが気になったので...2010-05-26CabalによるHackageへのアップロードとSetup.hsの使い方CabalでHackageにパッケージを上げたのでやり方をまとめておき...2010-02-16HaskellでFizzBuzzやってみたTwitter見てたらFizzBuzzの話題が流れてたので書いてみた。(1)月別アーカイブはてなブログをはじめよう!kryozahiroさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。