1

我正在用 ocaml 编写一个 bson 编码器/解码器库。

我现在有源文件(实际上只有一个文件)。

我的问题是,我应该如何将其作为一个库,例如ocaml-batteries-included,camomile等?

我的意思是,人们可以使用opam install它并使用ocamlfind+ocamlbuild来编译它吗?

4

3 回答 3

4

支持ocamlfind真的很容易,没有不做的借口。基本上,选择任何“相似”的库,查找 META 文件,并将其调整为您自己的设置。我在这个 StackOverflow 答案中给出了一些基本说明。

OCamlbuild 是一个构建系统,您可以自由决定使用或不使用,但不应影响您的用户(除了他们将在构建程序之前安装它的事实)。您还可以使用 Makefile 或任何其他构建系统(omake 等)。ocamlbuild 的想法只是提供一个_tags包含足够信息的文件来构建你的库/程序(如果你正在做高级的东西,一个myocamlbuild.ml文件也是如此)。再次,看看有哪些与你的结构相似的项目正在做。

对于 Opam,有一个包装指南可以指导您(但同样,只需适应其他人正在做的事情)。

于 2013-04-24T16:05:07.407 回答
2

我会介绍一些有点非标准但完全可用的东西:obuild。您只需要一个project.obuild文件,然后obuild build将构建您的项目。obuild install将使用 ocamlfind 安装它。

但是,从 github 安装 obuild 而不是 opam,因为 opam 版本有点过时了。这是一个示例obuild文件,可以为您提供一个想法:https ://github.com/vbmithr/ocaml-websocket/blob/master/websocket.obuild

于 2013-04-24T20:05:43.497 回答
1

绿洲;您基本上创建了一个_oasis描述您的库的文件。然后,该oasis工具将为您创建一个构建系统。您可以通过Opam安装 Oasis 。有一个Oasis快速入门教程可以帮助您入门。

Oasis 致力于标准化 OCaml 包的计算机可读描述。在此期间,它可以将构建系统作为副产品创建(当前是ocamlbuild基于的系统,并且支持 Makefile)。

于 2013-04-25T12:00:43.243 回答