_tags文件与OCaml的目的是什么,以及如何解释内容?

时间:2015-02-27 03:28:33

标签: ocaml ocamlbuild

Building OCaml code that uses list comprehension帖子中,我可以使用_tags文件来执行ocamlbuild较少的构建选项。

$ cat _tags
<**/*> : package(camlp4),syntax(camlp4o),package(pa_comprehension)

Batteries introduction开始,我还需要使用_tags文件来使用电池包。

<*>: package(batteries)

为什么第一个示例在第二个示例使用<**/*>时使用<*>?一般来说,ocamlbuild中_tags文件的目的是什么?你有一些很好的教程吗?

1 个答案:

答案 0 :(得分:6)

除了_tags之外,myocamlbuild.ml文件构成了ocamlbuild编译系统的根。

ocamlbuild是一个非常通用的工具,可以编译任何东西。它由解算器驱动,根据目标,由用户设置,找到可以满足目标的解决方案。解决方案是应用于文件的一系列规则。文件可以用标签标记。标签可以改变规则。例如,它可以添加标志,例如启用分析或链接到库。

_tags文件提供了一种为文件分配标签的机制,它有一个简单的语法:

 pattern ":" tag "," {tag}.

:左边的内容实际上是一个模式或正则表达式。将为表达式匹配的每个文件分配:右侧出现的所有标记。

<**/*>表示此文件夹中的所有文件以及所有子文件夹都有一个快捷方式:true<*>表示此文件夹中的所有文件(不会降级到子文件夹中)。其他示例包括<*.ml><*.cmx><**/*.cma>(btw or也可用于构建模式)。

OCamlbuild记录在OCaml Manual中,还有dump旧维基,有很多信息。

但有趣的是,通常你不需要知道这一点就可以使用OCaml。有一个OASIS工具可以自动执行所有任务,并通过简单的高级定义为您创建_tags文件。