我正在OCaml
中学习更复杂的编辑。
首先我不是C程序员,我真的不知道什么是make
等等。我正在使用Mac OS X terminal
,我也是一名Java程序员。
我发现在OCaml中有一些内容,例如ocamlc
,ocamlbuild
,ocamlfind
,oasis
等等。我对它们非常困惑。
问题1
有人可以告诉我在ocamlc
,ocamlbuild
,ocamlfind
,oasis
中应该使用哪一个?
问题2
我试过这个教程http://nicolaspouillard.fr/ocamlbuild/ocamlbuild-user-guide.html,这对ocamlbuild
有好处。
但是,如果我想使用ocaml-batteries
或camomile
等外部库,我如何使用ocamlbuild
链接这些库?
问题3
这是一个关于所有外部库的更实际的问题。
因此,对于许多ocaml库,我使用opam install
来安装它们。
为什么需要安装库?我的意思是,在Java中,通常我们只是将lib复制到某个地方,然后将lib的路径包含到-classpath
或-cp
中。那么为什么我们需要安装OCaml库?
在opam install
lib之后,例如camomile
(对于utf8),发生了什么以及会发生什么?这种安装只是下载lib的源文件并将其复制到某个地方吗?
怎么能找到这个库呢?例如,如果我opam install camomile
,那么如何在我自己的代码中链接或使用它们呢?
通常如何使用ocaml library
?例如,对于camomile
(http://camomile.sourceforge.net/dochtml/index.html),他们有三个模块:CamomileLibrary
等。所以我应该open
我的代码中的模块,对吧?
答案 0 :(得分:2)
工具:
使用最近的ocamlbuild,您可以使用'ocamlbuild -use-ocamlfind -pkg -pkg ...'作为使用ocamlfind包package1,package2构建项目的快速方法。 下一步是使用'ocamlbuild -use-ocamlfind'并将package()指令放在_tags文件中。
但是我建议尝试使用oasis,它简化了为项目创建构建系统的过程。 如果你想看看使用oasis或ocamlbuild时“幕下”会发生什么,请参阅_build / _log文件。它包含所有ocamlfind / ocamlc / ocamldep / ocamlopt调用。
opam问题可能属于另一个问题。