Компиляция батарей ocaml: ОШИБКА: Остальные файлы компиляции OCaml:

Build mode: shared
ocamlbuild -no-links syntax.otarget byte.otarget src/batteries_help.cmo META shared.otarget
Finished, 0 targets (0 cached) in 00:00:00.
SANITIZE: a total of 3 files that should probably not be in your source tree
  has been found. A script shell file
  "/home/fanzhihang/batteries-1.4.1/_build/sanitize.sh" is being created.
  Check this script and run it to remove unwanted files or use other options
  (such as defining hygiene exceptions or using the -no-hygiene option).
Warning: Leftover OCaml type annotation files:
  File pa_estring_top.annot in libs/estring has suffix .annot
IMPORTANT: I cannot work with leftover compiled files.
ERROR: Leftover OCaml compilation files:
  File pa_estring_top.cmo in libs/estring has suffix .cmo
  File pa_estring_top.cmi in libs/estring has suffix .cmi
Exiting due to hygiene violations.
Compilation unsuccessful after building 0 targets (0 cached) in 00:00:02.
make: *** [all] Error 1

Эта ошибка компиляции батарей действительно озадачивает меня. Как мне исправить ошибку?

2 ответа

Вы знаете OPAM?

$ opam install batteries

Он установит все зависимости автоматически.

[РЕДАКТИРОВАТЬ] Как установить опам:

$ git clone https://github.com/OCamlPro/opam
$ ./configure # (or ./configure --prefix=$HOME if you want to install under your $HOME)
$ make
$ make install
$ opam init
$ eval `opam config -env`

Вы можете выполнить скрипт:

/home/fanzhihang/batteries-1.4.1/_build/sanitize.sh

Это удалит файлы, которые, по мнению OCamlbuild, не должны быть здесь (а именно.annot,.cmo и.cmi, о которых говорится в ошибке).

Другие вопросы по тегам