【问题标题】:OCaml unable to load "extLib.cma" from toplevelOCaml 无法从顶层加载“extLib.cma”
【发布时间】:2016-05-20 15:35:29
【问题描述】:

当我尝试在 OCaml 的顶层 utop 中加载文件 extLib.cma 时,我收到以下错误:

Cannot find file extLib.cma

但是,如果我尝试使用 opam 安装它,我会收到以下注释:

Package extlib is already installed.

我做错了什么?

【问题讨论】:

  • (1) 您究竟如何加载extLib.cma? (2) 你的意思是只调用一些extLib 的函数吗?还是别的什么?
  • 试试#require "extlib";;
  • 成功使用#require "extlib"后,尝试使用opam安装javalib,报错:无法满足以下依赖:-javalib -> extlib
  • 就我而言,opam 1.2.2 版提供给↘ downgrade extlib 1.7.0 to 1.5.4 [required by javalib]
  • 在顶层,使用#list 指令来显示可用的包。编译时,使用带有ocamlfind 的编译器调用。

标签: ocaml utop


【解决方案1】:

如果您的目的是交互地使用 extLib 的某些功能,那么

$ utop

μ> #require "extlib";;
μ> ExtString.String.explode "ExtLib";;
- : char list = [E; x; t; L; i; b]

如果是其他内容,那么您可能需要指定到 extLib.cma 的确切路径,类似以下的内容应该可以工作:

$ utop

μ> #load "/Users/xxx/.opam/4.02.3/lib/extlib/extLib.cma";;

/Users/xxx 是您的主目录/文件夹; 4.02.3 是我当前的编译器版本,通过opam switch 设置(IIRC,默认为system)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多