LablGtkを使う
LablGtk
http://lablgtk.forge.ocamlcore.org/
GTK+
GTK+のバイナリ入手
ftp://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/
gtk+-bundle_2.16.6-20100912_win32.zip
C:/opt/gtk
bin
include
lib
となるように展開する
C:/opt/gtk/binにパスを通す
build
> cd C:\OCaml\lib\lablgtk2 > ocaml build.ml
実験
base.ml
let main () = let window = GWindow.window () in window#show (); window#connect#destroy ~callback:(fun () -> GMain.Main.quit ()); GMain.Main.main () let _ = main ()
> C:\Ocaml\bin\lablgtk2.bat base.ml > C:\Ocaml\bin\ocaml -I +lablgtk2 lablgtk.cma gtkInit.cmo base.ml でもだいたい同じ
ネイティブコンパイル
> ocamlopt -I +lablgtk2 lablgtk.cmxa gtkInit.cmx base.ml -ccopt "-LC:/i686-pc-mingw32/lib"
"-LC:/opt/gtk/lib"は要らないらしい。dependency walkerで見たらちゃんとgtkのdllとリンクされていた。