来自维基百科的Ocaml OpenGL示例无法编译

时间:2009-06-08 04:06:29

标签: opengl cygwin ocaml

我正在尝试开始一些基本的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

第2行只是原因和错误,说Glut.init是未绑定的。

我在cygwin上运行它,这可能是问题的根源。但有人知道如何解决它吗?

2 个答案:

答案 0 :(得分:2)

您需要先安装LablGL绑定,如维基百科页面所示。我不知道Cygwin上最好的方法是什么。

P.S。 OpenGL编程几乎不是“基本的Ocaml编程”

答案 1 :(得分:0)

在cygwin + windows上工作实际上是一种痛苦。您遇到错误的原因很可能是库问题。它可能就像将opengl dll复制到可执行文件的目录中一样简单(首先尝试)。但很可能这是一个链接问题。你最好的选择是用msvc编译(有点痛苦)或用mingw编译。 mingw比在cygwin中使用整个工具链要好得多(FOR OPENGL)。但除此之外我更喜欢cygwin。

- 尼科