2014-06-05 48 views
2

我看到OCaml opam repository中的base-unix包。它被描述为“随OCaml编译器分发的Unix库”。其他一些与OCaml编译器一起发布的库没有自己的软件包。例如,str库中不存在base-str包。为什么一些标准ocaml库opam软件包和一些不是?

为什么会有这样的差异?据我所知,在使用ocamlfindocamlbuild编译时,它们都需要在命令行中指定为程序包或库。

回答

6

图书馆与OPAM包名基地-XXX是可选库:他们是从OCaml的编译器本身,但是他们可能因计算机环境下,操作系统可能无法安装和构建编译器的配置标志。例如,存在base-unix意味着unix库在该环境中可用。

在另一方面,STR库不依赖于系统的,因此安装可在任何地方OCaml的。因此,OPAM不需要明确地提供它的基本包来告诉库的存在。

虽然STR存在于所有的OCaml的装置,其连接不是自动的。这就是为什么ocamlfind需要一个软件包。

OPAM包是通过opam命令安装的。 OCamlFind软件包用于链接。它们是相关的但不同的。令人困惑,但这是我们现在在OCaml生态系统中所拥有的。

+0

绝对令人困惑,请修正:-) – mljrg

相关问题