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

ocamlfind install META _build/a.cma _build/a.cmxa ...


还是ocamlbuildocamlfind之间有更好的集成?特别是,我注意到-install-lib-dirocamlbuild标志,但是找不到有关其用途的文档。

我知道oasis,但是现在想解决Makefile和install目标中的问题。所有这些都是在使用opam库管理器的上下文中进行的,但对于讨论而言并不重要。

最佳答案

不,没有特定的集成。 ocamlbuild与构建前(配置)工具和构建后(安装)工具无关,而ocamlfind与构建工具类似。

您正确地认为ocamlbuild不能很好地可靠地链接_build/中的目标。这是一个已知的故障,但是您可以随意在report特定情况下遇到问题。无论如何,我认为最好直接引用_build/中的文件。

DanielBünzli的feature request可以让ocamlbuild帮助生成OPAM的.install文件,而不是手工编写(或制作文件脚本)。我个人没有时间来研究这些功能,但是我热烈欢迎这方面的ocamlbuild贡献。

09-19 02:04