【问题标题】:Unbound module Findlib error during installation of Ocaml Batteries安装 Ocaml 电池期间未绑定模块 Findlib 错误
【发布时间】:2012-09-18 14:06:33
【问题描述】:

我创建了我的~/.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'

【问题讨论】:

标签: debian ocaml ocaml-batteries


【解决方案1】:

感谢dkim,我将发布对我有用的解决方案。希望这对其他人有帮助。

Ocaml电池安装流程

为了能够使用 ocaml-batteries-included,我遵循了这个过程:

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

需要rlwrapledit 来添加对OCaml toploop 的readline 支持。

.bashrc 中添加了一个别名,用于保存在 ocaml toploop 中输入的命令。

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

-H 指定历史文件名
-D 忽略重复项
-i 不区分大小写
-s 限制存储在此文件中的命令数

如 cmets 中所述,我在尝试调用 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

对于某些人来说,从 here 提到的源安装 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

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2012-11-21
    • 1970-01-01
    • 2020-04-18
    相关资源
    最近更新 更多