我正在用 ocaml 编写一个 bson 编码器/解码器库。
我现在有源文件(实际上只有一个文件)。
我的问题是,我应该如何将其作为一个库,例如ocaml-batteries-included
,camomile
等?
我的意思是,人们可以使用opam install
它并使用ocamlfind
+ocamlbuild
来编译它吗?
我正在用 ocaml 编写一个 bson 编码器/解码器库。
我现在有源文件(实际上只有一个文件)。
我的问题是,我应该如何将其作为一个库,例如ocaml-batteries-included
,camomile
等?
我的意思是,人们可以使用opam install
它并使用ocamlfind
+ocamlbuild
来编译它吗?
支持ocamlfind
真的很容易,没有不做的借口。基本上,选择任何“相似”的库,查找 META 文件,并将其调整为您自己的设置。我在这个 StackOverflow 答案中给出了一些基本说明。
OCamlbuild 是一个构建系统,您可以自由决定使用或不使用,但不应影响您的用户(除了他们将在构建程序之前安装它的事实)。您还可以使用 Makefile 或任何其他构建系统(omake 等)。ocamlbuild 的想法只是提供一个_tags
包含足够信息的文件来构建你的库/程序(如果你正在做高级的东西,一个myocamlbuild.ml
文件也是如此)。再次,看看有哪些与你的结构相似的项目正在做。
对于 Opam,有一个包装指南可以指导您(但同样,只需适应其他人正在做的事情)。
我会介绍一些有点非标准但完全可用的东西:obuild。您只需要一个project.obuild
文件,然后obuild build
将构建您的项目。obuild install
将使用 ocamlfind 安装它。
但是,从 github 安装 obuild 而不是 opam,因为 opam 版本有点过时了。这是一个示例obuild
文件,可以为您提供一个想法:https ://github.com/vbmithr/ocaml-websocket/blob/master/websocket.obuild