1

基本的な Ocaml プログラミングを始めようとしています。まず、ウィキペディアの実行から OpenGL の例を取得したいと思いました。 http://en.wikipedia.org/wiki/Ocam l

    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 で実行していますが、これが問題の原因である可能性があります。しかし、誰もそれを修正する方法を知っていますか?

4

2 に答える 2

2

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

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

于 2009-06-08T07:25:28.817 に答える
0

これは、実際には cygwin + windows で作業するのが面倒です。エラーが発生する理由は、ライブラリの問題である可能性が最も高いです。それは、opengl dll を実行可能ファイルのディレクトリにコピーするのと同じくらい簡単かもしれません (最初に試してみてください)。しかし、ほとんどの場合、リンクの問題です。あなたの最善の策は、msvc (一種の苦痛) または mingw でコンパイルすることです。mingw は、ツールチェーン全体を cygwin で動作させるよりも (OPENGL の場合) はるかにうまく機能します。しかし、そうでなければ、私は cygwin を好みます。

――ニコ

于 2009-06-12T17:20:10.717 に答える