1

我正在尝试开始一些基本的 Ocaml 编程。首先,我想从 wikipedia 运行 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 上运行它,这可能是问题的根源。但是有人知道如何解决吗?

4

2 回答 2

2

您需要先安装LablGL绑定,如 Wikipedia 页面所示。我不知道在 Cygwin 上执行此操作的最佳方法是什么。

PS OpenGL 编程几乎不是“基本的 Ocaml 编程”

于 2009-06-08T07:25:28.817 回答
0

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

——尼科

于 2009-06-12T17:20:10.717 回答