我有一个带有OCaml .ml文件和Menhir .mly文件的项目。我使用ocamlbuild来编译这个项目。在ocamlbuild中使用.mly文件中的电池
我_tags文件包含此单行:
true: use_menhir, package(batteries)
一切运作良好,除了当我想在.mly文件中使用的电池。如果我在我的.mly文件中的%{
和%}
之间的open Batteries ;;
,调用ocamlbuild时会出现“Error:Unbound module Batteries”。
看来,当ocamlbuild呼吁巨石,像这样:
/usr/bin/menhir --ocamlc '/usr/bin/ocamlfind ocamlc' --infer parser.mly
它忘记在巨石的--ocamlc
选项添加-package batteries
(或等价的东西)。
我该如何解决这个问题?也许我的_tags文件中的.mly文件的特殊规则可以帮助吗?或者它是一个ocamlbuild错误?
我使用OCaml 4.00.1,电池2.1和ocamlbuild 4.00.1。 这些是最新发布的版本。我不想与SVN版本合作,所以我想现在我已经陷入了bug。感谢您清除这种情况。 – p4bl0
是的。 svn版本: 'menhir --explain --infer -la 1 --table --ocamlc'ocamlfind ocamlc -I + ocamlbuild -g -annot -bin-annot -strict-sequence -bin-annot -package yojson -package menhirLib -package ulex -package pprint -package fix -I parsing -I utils -I typing -I interpreter -I lib -I compiler -I mezzolib -I tests/unit'--infer parsing/grammar.mly ' with 4.00.1: '+ menhir --explain --infer -la 1 --table --ocamlc'/home/jonathan/.opam/4.00.1/bin/ocamlfind ocamlc -I parsing -I utils -I typing - 我解释器-I lib -I编译器-I mezzolib -I tests/unit' - 解析/ grammar.mly ' –