使用 ocamlbuild 构建库,使用 ocamlfind 安装它——最佳实践是什么?

Building library with ocamlbuild, installing it with ocamlfind - what's the best practice?

我正在使用 ocamlbuild 通过 mylib.mllib 文件编译 OCaml 库,该文件列出了构成库的模块。之后我想使用 ocamlfind 安装库文件。与使用 ocamlbuild 构建的二进制文件不同,所有库文件都在 _build 目录中。是使用

之类的方式安装它们的正确方法吗
ocamlfind install META _build/a.cma _build/a.cmxa ...

或者 ocamlbuildocamlfind 之间是否有更好的整合?特别是,我注意到 ocamlbuild-install-lib-dir 标志,但找不到有关其用途的文档。

我知道 oasis 但现在想在 Makefile 和 install 目标中解决问题。所有这些都是在使用 opam 库管理器的情况下进行的,但对于讨论来说应该无关紧要。

没有,没有具体的集成。 ocamlbuild 与预构建(配置)和 post-构建(安装)工具无关,ocamlfind 同样与构建工具无关。

你是对的,ocamlbuild 不太擅长从 _build/ 可靠地模拟链接目标。这是一个已知的故障,但您可以随时处理 report 对您来说有问题的特定情况。反正我觉得还是直接参考_build/里面的文件比较好

Daniel Bünzli 的 feature request 让 ocamlbuild 帮助生成 OPAM 的 .install 文件,而不是手动编写(或 makefile 脚本)。我个人没有时间研究这些功能,但我热烈欢迎任何 ocamlbuild 在这方面的贡献。