Graphics 如何在windows cygwin中编译ocaml图形

Graphics 如何在windows cygwin中编译ocaml图形,graphics,compiler-errors,ocaml,Graphics,Compiler Errors,Ocaml,我在Windows上使用cygwin 64终端,并希望编译此ocaml图形代码。 它保存为.ml类型: let etat x y c=draw_circle x y 10 ;let a=(x-5) and b=(y-5) in moveto a b ;let s=string_of_int c in draw_string s;; etat 100 100 1;; etat 200 200 3;; 我混淆了:加载图形。cma打开图形。打开图形 我应该使用ocamlc-oggraphics.cm

我在Windows上使用cygwin 64终端,并希望编译此ocaml图形代码。 它保存为.ml类型:

let etat x y c=draw_circle x y 10 ;let a=(x-5) and b=(y-5) in moveto a b ;let s=string_of_int c in draw_string s;;
etat 100 100 1;;
etat 200 200 3;;
我混淆了:加载图形。cma打开图形。打开图形

我应该使用ocamlc-oggraphics.cma g.ml吗 编译

我被弄糊涂了:加载图形。cma打开图形。打开图形

  • load
    是交互式顶层的一个指令。它不是OCaml语言的一部分。您正在使用指令来命令交互顶层。它用于将代码加载到顶层

  • opengraphics
    是一种语言构造,它将模块图中的定义名称带入当前范围。这允许您编写
    打开图形
    ,而不是
    图形。打开图形
    。最好不要打开太多的模块(如果有的话),因为它可能会污染您的名称空间,并使您的代码不易理解

  • Graphics.open\u graph
    是一个函数,当被调用时,它将在您的计算机中打开一个图形窗口

我应该使用ocamlc-oggraphics.cma g.ml进行编译吗

是的,您可以使用
ocamlc
编译代码。OCaml编译器工具链很难使用。但是,有一个名为ocamlbuild的编译管理器,它应该像魔术一样工作,例如

 ocamlbuild -pkg graphics g.byte

您将获得一个可以运行的
g.byte
可执行文件。

使用ocamlbuild构建项目:ocamlbuild-use-ocamlfind-pkg graphics.native。它将解决依赖关系。它将链接到graphics.cma;在代码中,您需要通过打开该模块来引用该模块的函数,或者通过在函数前面加上图形来显式显示名称空间。