2009-06-08 3 views
1

일부 Ocaml 프로그래밍을 시작하려고합니다. 시작하려면 위키 피 디아에서 OpenGL 예제를 실행하고 싶었습니다. 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() 

Glut.init 언 바운드라고 말하는 라인 2에 주어진 컴파일러

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

그냥 원인 지침 및 오류.

이 문제는 cygwin에서 실행 중입니다. 문제의 원인 일 수 있습니다. 하지만 아무도 그것을 고칠 방법을 알고 있습니까?

답변

2

먼저 위키피디아 페이지에 표시된대로 LablGL 바인딩을 설치해야합니다. Cygwin에서 가장 좋은 방법은 무엇인지 모르겠습니다.

P. OpenGL 프로그래밍은 거의 "기본적인 Ocaml 프로그래밍"이 아닙니다.

+0

MSVC 버전의 Ocaml을 사용해야 할 필요가있는 것처럼 보이지만 모든 것을 잘못 할 수도 있습니다. – AlexH

0

이것은 실제로 cygwin + windows에서 작동하도록하는 고통입니다. 오류가 발생하는 이유는 라이브러리 문제 일 가능성이 큽니다. OpenGL dll을 실행 파일의 디렉토리에 복사하는 것만 큼 간단 할 수도 있습니다 (먼저 시도해보십시오). 하지만 대부분 링크 문제 일 가능성이 높습니다. 최선의 방법은 msvc (고통스러운 종류) 또는 mingw로 컴파일하는 것입니다. mingw는 cygwin에서 전체 툴체인을 사용하는 것보다 훨씬 더 잘 작동합니다 (OPENGL 용). 하지만 그렇지 않으면 나는 cygwin을 선호한다.

- 니코

관련 문제