我正在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
进行安装。
-classpath
或-cp
中。那为什么我们需要安装OCaml库? opam install
一个库(例如camomile
(用于utf8))之后的opam install camomile
,那么如何在我自己的代码中链接或使用它们? ocaml library
?例如,对于camomile
(http://camomile.sourceforge.net/dochtml/index.html),它们具有三个模块:CamomileLibrary
等。因此,我应该在代码中对模块open
进行编码,对吗? 最佳答案
工具:
并使用'ocamlfind ocamlopt -package camomile yourfile.cmx -linkpkg -o yourfile'创建可执行文件
使用最新的ocamlbuild,您可以使用ocamlbuild -use-ocamlfind -pkg -pkg ...作为使用ocamlfind软件包package1,package2来构建项目的快速方法。
下一步将使用'ocamlbuild -use-ocamlfind'并将package()指令放在_tags文件中。
但是,我建议尝试使用oasis,它可以简化为您的项目创建构建系统的过程。
如果要查看使用oasis或ocamlbuild时“幕后”的情况,请参见_build/_log文件。它包含所有ocamlfind/ocamlc/ocamldep/ocamlopt调用。
opam问题可能属于一个单独的问题。