Windowsでlablglを使う
おはようございます。次男のしばらく遊ばなかった折り紙を再利用して長男とスポーツカーを折ったら、次男が激怒してました。@kjunichiです。
前提
なりでutopが動く程度に環境が整備されていること。
Cygwinのターミナルを開いて作業
.bashrc
export PATH=$PATH:$HOME/.opam/system/lib/stublibs export OCAMLLIB=C:/OCaml/lib
install
opam depext lablgl.1.05
opam install lablgl
REPLモードでlablglを使う
折角前回入れたutopで以降は作業する。このため、cygwinのターミナルから cmdを起動して、以降はこちらのコマンドプロンプトで作業を行う。
utopだとlablglutコマンドとは違い、タブの補間が効いたりと便利なことも多い。
cd $HOME && cmd /c start cmd utop
#require "lablgl";;
#require "lablgl.glut";;
これで対話的にlablglが使える。
以下のようにウィンドウを表示できた。
Glut.init Sys.argv;; Glut.createWindow "LablGL: aiueo";; Gl.enable `lighting;; GlLight.light 1 (`diffuse (0.7, 0.9, 0.7, 1.0));; GlLight.light 1 (`position (2.0, 0.2, 0.0, 0.0));; Gl.enable `light1;; let display () = GlClear.color (0.0, 0.0, 0.0); GlClear.clear [`color]; Glut.solidTeapot 0.3; Gl.flush ();; Glut.displayFunc display;; Glut.mainLoop ();;
書いたコードを動かすには
ocaml -I "C:/tools/cygwin/home/kjw_j/.opam/system/lib/lablgl" lablgl.cma lablglut.cma fern.ml
exeをつくるには
ocamlfind ocamlopt -o fern -linkpkg -package lablgl,lablgl.glut fern.ml
ソース
表示結果
改めうごかすと動かない問題
この問題は、この記事の.bashrcの設定を行っていれば起きない。
- dlllablgl.dllが開けないエラー
パスが通っていない
- Fatalエラー
Fatal error: exception Typetexp.Error(_, _, _)
OCAMLLIBが設定されていないと、これが出る模様。
あとがき
実は、この記事の書いてる際にlablgtkを使おうとしたら、上手くいかず、最近はOCaml for Windowsを使うようになった。 こちらでも、lablgtkに加え、lablglも動いている。