ocaml - 通过 ocamlbuild 在 .mly 文件中使用电池

标签 ocaml ocamlbuild ocaml-batteries menhir

我有一个包含 OCaml .ml 文件和 Menhir .mly 文件的项目。我使用 ocamlbuild 来编译项目。

我的 _tags 文件包含这一行:

true: use_menhir, package(batteries)

一切正常,除非我想在 .mly 文件中使用电池。如果我 open Batteries ;; %{之间和 %}在我的 .mly 文件中,调用 ocamlbuild 时出现“错误:未绑定(bind)的模块电池”。

似乎当 ocamlbuild 调用 menhir 时,像这样:
/usr/bin/menhir --ocamlc '/usr/bin/ocamlfind ocamlc' --infer parser.mly

它忘记添加 -package batteries --ocamlc 中的(或等效的) menhir的选择。

我该如何解决?也许我的 _tags 文件中的 .mly 文件的特殊规则会有所帮助?或者它是一个 ocamlbuild 错误?

最佳答案

这应该在最近的 OCaml 版本中得到修复(参见 http://caml.inria.fr/mantis/view.php?id=5763 )。你运行的是哪个版本?

关于ocaml - 通过 ocamlbuild 在 .mly 文件中使用电池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290774/

相关文章:

arrays - 在 ocaml 中展平数组的最快方法是什么?

crash - Ocaml "Out of memory"异常;详细模式说 "Stack overflow in structural comparison"

ocaml - 用 OCaml 编写解释器

ocaml - 告诉 ocamlbuild 使用 Core

functional-programming - 如何在 OCaml 中查找数组元素的索引

ocaml - 如何将 ocamlfind/ocamlbuild 工具链与包的项目本地副本一起使用?

ocaml - 编译 ocaml-websocket 失败

parsing - 使 OCaml Arg.parse 函数接受以开头的匿名参数

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

ocaml - 使用 ocamlbuild 将选项传递给 camlp4