У меня есть проект с OCaml .ml-файлами и файл Menhir .mly. Я использую ocamlbuild для компиляции проекта.Использование батарей в файле .mly с ocamlbuild
Моего _tags файл содержит эту единственную строку:
true: use_menhir, package(batteries)
Все работает хорошо, за исключением того, когда я хочу использовать батареи в .mly файла. Если я open Batteries ;;
между %{
и %}
в моем .mly файле, я получаю сообщение «Ошибка: Unbound Module Batteries» при вызове ocamlbuild.
Кажется, что когда ocamlbuild звонит менгир, как это:
/usr/bin/menhir --ocamlc '/usr/bin/ocamlfind ocamlc' --infer parser.mly
забывает добавить -package batteries
(или что-то эквивалент) в --ocamlc
опции менгир.
Как это исправить? Может быть, может помочь специальное правило для моего файла .mly в моем файле _tags? Или это ошибка ocamlbuild?
Я использую OCaml 4.00.1, батареи 2.1 и ocamlbuild 4.00.1. Это самые последние выпущенные версии. Я не хочу работать с версией SVN, поэтому, наверное, сейчас я застрял с ошибкой. Спасибо, что расчистили ситуацию. – p4bl0
Да. С версией svn: 'menhir --explain --infer -la 1 --table --ocamlc 'ocamlfind ocamlc -I + ocamlbuild -g -annot -bin-annot -строчная последовательность -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 ' с 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 interpreter -I lib -I compiler -I mezzolib -I tests/unit '-infer parsing/grammar.mly ' –