我正在使用 ocamlbuild
通过 mylib.mllib
文件编译OCaml库,该文件列出了包含库的模块 . 之后我想使用 ocamlfind
安装库文件 . 与使用 ocamlbuild
构建的二进制文件不同,所有库文件都在 _build
目录中 . 是使用类似的东西安装它们的正确方法
ocamlfind install META _build/a.cma _build/a.cmxa ...
或 ocamlbuild
和 ocamlfind
之间是否有更好的整合?特别是,我注意到 ocamlbuild
的 -install-lib-dir
标志,但无法找到有关其用途的文档 .
我知道 oasis
但是现在想解决Makefile和 install
目标中的问题 . 所有这些都是在使用 opam
库管理器的上下文中,但它对于讨论无关紧要 .
1 回答
不,没有具体的整合 .
ocamlbuild
与预构建(配置)和构建后(安装)工具无关,ocamlfind
与构建工具同样不可知 .你是正确的
ocamlbuild
不是很擅长从_build/
可靠地链接目标 . 这是一个众所周知的故障,但你应该随意report具体情况,这是一个问题 . 无论如何,我认为最好直接引用_build/
中的文件 .DanielBünzli有一个feature request让ocamlbuild帮助生成OPAM的
.install
文件,而不是手工编写(或makefile脚本) . 我个人没有时间研究这些功能,但我会热烈欢迎这方面的任何ocamlbuild贡献 .