Ошибка несвязанного модуля 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 устанавливается из источников, упомянутых здесь.

Еще несколько полезных ссылок:

  1. http://mirror.ocamlcore.org/wiki.cocan.org/tips_for_using_the_ocaml_toplevel.html
  2. http://projects.camlcity.org/projects/dl/findlib-1.2.1/doc/guide-html/quickstart.html
  3. http://www.donadeo.net/post/2010/installing-batteries
Другие вопросы по тегам