gpt4 book ai didi

ocaml - 为什么有些标准的 ocaml 库是 opam 包而有些不是?

转载 作者:行者123 更新时间:2023-12-01 14:44:37 27 4
gpt4 key购买 nike

我在 OCaml opam repository 中看到了 base-unix 包.它被描述为“与 OCaml 编译器一起分发的 Unix 库”。其他一些也随 OCaml 编译器一起分发的库没有自己的包。例如,str 库不存在 base-str 包。

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

最佳答案

OPAM 包名称为 base-XXX 的库是可选库:它们来自 OCaml 编译器本身,但它们可能会安装也可能不会安装,具体取决于编译器的计算机环境、操作系统和构建配置标志。例如,base-unix 的存在意味着 unix 库在该环境中可用。

另一方面,str 库不依赖于系统,因此在安装 OCaml 的任何地方都可用。因此 OPAM 不需要显式提供其基础包来告知库的存在。

虽然所有 OCaml 安装都存在 str,但它的链接不是自动的。这就是 ocamlfind 需要一个包的原因。

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

关于ocaml - 为什么有些标准的 ocaml 库是 opam 包而有些不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com