Ошибка несвязанного модуля Findlib при установке батарей Ocaml
Я создал свой ~/.ocamlinit
следующее
let interactive = !Sys.interactive;;
Sys.interactive := false;; (*Pretend to be in non-interactive mode*)
#use "topfind";;
Sys.interactive := interactive;; (*Return to regular interactive mode*)
Toploop.use_silently Format.err_formatter (Filename.concat (Findlib.package_directory "batteries") "battop.ml");;
Когда я печатаю ocaml
в командной строке я получаю следующую ошибку:
$ ocaml
Objective Caml version 3.12.1
Cannot find file topfind.
File ".ocamlinit", line 6, characters 60-85:
Error: Unbound module Findlib
#
Что является причиной этой проблемы и как я должен идти для устранения этой проблемы?
(Я нахожусь на Debian Wheezy)
Изменить: я установил псевдоним для ocaml:
alias ocaml='rlwrap -H /home/nanda/.ocaml_history -D 2 -i -s 10000 ocaml'
1 ответ
С благодарностью dkim
Я бы опубликовал решение, которое работает для меня. Надеюсь, это поможет кому-то еще.
Процесс установки батарей Ocaml
Чтобы иметь возможность работать с батареями ocaml, я следовал этому процессу:
sudo apt-get install ocaml ocaml-batteries-included ocaml-doc ledit rlwrap
rlwrap
или же ledit
необходим для добавления поддержки readline для OCaml toploop.
Добавлен псевдоним в .bashrc
, чтобы сохранить команды, введенные в ocaml toploop.
alias ocaml='rlwrap -H /home/nanda/.ocaml_history -D 2 -i -s 10000 ocaml'
-H указывает имя файла истории
-D игнорирует дубликаты
-и без учета регистра
-s ограничивает количество команд, хранящихся в этом файле
Как упоминалось в комментариях, я получал эту ошибку при попытке вызвать интерпретатор ocaml.
$ ocaml
Objective Caml version 3.12.1
Cannot find file topfind.
File ".ocamlinit", line 6, characters 60-85:
Error: Unbound module Findlib
#
Я получил эту ошибку, потому что пакет ocaml-findlib не был правильно установлен. Я испортил это, установив libfindlib-ocaml-dev
пакет:
sudo apt-get install libfindlib-ocaml-dev
Для некоторых людей проблема решается, когда пакет findlib устанавливается из источников, упомянутых здесь.
Еще несколько полезных ссылок: