2017-02-23 102 views
0

我在Windows上使用cygwin 64终端并且想编译这个ocaml图形代码。 它保存为.ml类型:如何编译ocaml图形窗口cygwin

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;; 

我之间困惑:负载graphics.cma打开图形Graphics.open_graph

而且,我也要用ocamlc -og graphics.cma g.ml 到编译?

+0

使用ocamlbuild来构建您的项目:ocamlbuild -use-ocamlfind -pkg graphics .native。它将解决依赖关系。它将链接到graphics.cma;在你的代码中,你需要通过打开这个模块来引用那个模块的功能,或者通过在Graphics前面加上前缀来明确地给出命名空间。 –

回答

0

我正在confued之间:负载graphics.cma打开图形Graphics.open_graph

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

  • open Graphics是一种语言结构,它将模块Graph中的定义名称带到当前范围。这允许你写open_graph而不是Graphics.open_graph。最好不要打开太多的模块(如果有的话),因为它可能会污染你的命名空间,并使你的代码变得不那么容易理解。

  • Graphics.open_graph是一个函数,它在被调用时会在你的机器上打开一个图形窗口。

和我应该使用ocamlc -o克graphics.cma g.ml进行编译。

是的,你可以使用ocamlc编译你的代码。 OCaml编译器工具链相当难以使​​用。然而,有一个汇编管理器,称为ocamlbuild,那应该像魔术,例如,

ocamlbuild -pkg graphics g.byte 

你会得到一个g.byte的可执行文件,就可以运行。