2009-06-08 17 views
1

私はいくつかの基本的なOcamlプログラミングを始めようとしています。まずは、OpenGLの例をwikipediaで動かすことにしました。 http://en.wikipedia.org/wiki/OcamリットルOcaml OpenGLの例wikipediaがコンパイルに失敗する

let _ = 
    ignore(Glut.init Sys.argv); 
    Glut.initDisplayMode ~double_buffer:true(); 
    ignore (Glut.createWindow ~title:"OpenGL Demo"); 
    let angle t = 10. *. t *. t in 
    let render() = 
    GlClear.clear [ `color ]; 
    GlMat.load_identity(); 
    GlMat.rotate ~angle: (angle (Sys.time())) ~z:1.(); 
    GlDraw.begins `triangles; 
    List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.]; 
    GlDraw.ends(); 
    Glut.swapBuffers() in 
    GlMat.mode `modelview; 
    Glut.displayFunc ~cb:render; 
    Glut.idleFunc ~cb:(Some Glut.postRedisplay); 
    Glut.mainLoop() 

は、与えられたコンパイラ・ディレクティブ

ocamlc -I +lablGL lablglut.cma lablgl.cma simple.ml -o simple 

ちょうどGlut.initがバインドされていないと言って、2行目に発生し、エラー。

私はこれを問題の原因となるcygwinで実行しています。しかし、誰もそれを修正する方法を知っていますか?

答えて

2

ウィキペディアのページに示されているように、最初にLablGLバインディングをインストールする必要があります。私はCygwinでこれを行う最良の方法は何か分かりません。

P.S. OpenGLプログラミングはほとんど「基本的なOcamlプログラミング」ではありません

+0

OcamlのMSVCバージョンを使用する必要があるように見えますが、私はすべて間違っている可能性があります。 – AlexH

0

これは実際にCygwin +のウィンドウで作業するのに苦労します。あなたが間違いを犯した理由は、おそらくライブラリ問題です。 OpenGLのDLLを実行可能ファイルのディレクトリにコピーするのと同じくらい簡単かもしれません(最初に試してみてください)。しかし、主にそれはリンクの問題です。あなたの最善の策は、msvc(痛みを伴うもの)かmingwでコンパイルすることです。 mingwはcygwinでツールチェーン全体を動かすよりもはるかに優れています(OPENGLのために)。しかし、そうでなければ私はcygwinを好む。

- ニコ

関連する問題