Компиляция батарей ocaml: Unbound модуль Toploop
**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.
+ ocamlfind ocamlc -c -g -annot -warn-error A -package camomile,num,str -package camlp4.lib -pp camlp4of -pp camlp4of -I libs/estring -I benchsuite -I src -I testsuite -I build -I qtest -I libs -I src/syntax/pa_comprehension -I src/syntax/pa_strings -o libs/estring/pa_estring_top.cmo
libs/estring/pa_estring_top.ml
File "libs/estring/pa_estring_top.ml", line 18, characters 15-44:
Error: Unbound module Toploop
Command exited with code 2.**
Compilation unsuccessful after building 6 targets (5 cached) in 00:00:00.**
Я нашел toploop.cmi в пути:
cd OCaml/lib/ocaml/compiler-libs/
ls topl*
toploop.cmi
и, как вы видите,
export PATH=/home/xxx/OCaml/lib/ocaml/compiler-libs/:$PATH
я сделал /home/xxx/...
как мой системный путь. Но это все равно не сработало. Что я должен сделать, чтобы включить модуль toploop?
1 ответ
Решение
Вы, кажется, компилируете Батареи (какая версия?) С OCaml 4.00, который представил новый compiler-libs
директории (но в некоторых дистрибутивах она уже была, так что она может быть отключена). toploop
Раньше находился в корне каталога OCaml stdlib, но теперь вы должны добавить -I +compiler-libs
вариант где-нибудь, или используйте соответствующую упаковку ocamlfind (-package compiler-libs.toplevel
).