Компиляция батарей 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, о которых говорится в ошибке).