0

私は~/.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'
4

1 に答える 1

2

のおかげでdkim、私のために働いた解決策を投稿します。これが他の誰かに役立つことを願っています。

Ocaml バッテリーの取り付け手順

ocaml-batteries-included を使用できるようにするために、次のプロセスに従いました。

sudo apt-get install ocaml ocaml-batteries-included ocaml-doc ledit rlwrap

rlwrapまたはleditOCaml toploop の readline サポートを追加するために必要です。

.bashrcocaml トップループに入力されたコマンドを保存するために、 にエイリアスを追加しました。

 alias ocaml='rlwrap -H /home/nanda/.ocaml_history -D 2 -i -s 10000 ocaml'

-H 履歴ファイル名を指定します
-D 重複を無視します
-i 大文字と小文字を区別しません
-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
于 2012-09-27T05:22:18.043 に答える