【问题标题】:OCaml: Unbound module Core with ~/.ocamlinit setupOCaml:带有 ~/.ocamlinit 设置的未绑定模块核心
【发布时间】:2015-03-24 04:46:45
【问题描述】:

我已经使用 opam 安装了一些软件包,例如 Core 和 Batteries。 ocamlinit文件如下:

(* Added by OPAM. *)

#use "topfind"
#thread
#camlp4o
#require "core.top"
#require "core.syntax"
#require "batteries"

let () =
  try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
  with Not_found -> ()
;;

当我使用 utop 运行它时,我可以看到电池模块,但我看不到任何核心模块。当我尝试执行 open Coreopen Core.Std 时,我得到一个未绑定的模块错误。我还尝试添加#require "core" 并且错误仍然存​​在。

我不确定错误是什么,因为我按照“Real World OCaml”一书中的安装说明进行操作。

当我从 utop 开始时,我还看到两条消息:

No such package: oUnit" - required by `pa_ounit'"
No such package: pa_pipebang" - required by `core.syntax'"

我不确定这些是否与问题有关,但是当我执行 opam list ounitopam list pipebang 时,它显示它们已安装。

【问题讨论】:

  • 你有没有试过把 let () = try Topdirs.... 代码放在文件顶部,在#use "topfind"之前
  • 刚刚尝试过,遗憾的是它没有任何作用。

标签: ocaml opam


【解决方案1】:

好的,我重新安装了OCaml,发现问题确实与

有关
No such package: oUnit" - required by `pa_ounit'"
No such package: pa_pipebang" - required by `core.syntax'"

当我尝试opam install yojson async 时发生了错误。从那时起,Core 就无法正确加载。

所以我认为附加库的“Real World OCaml”安装说明有问题。

【讨论】:

  • 在我的第二次安装中,我执行了“opam 安装核心 utop 电池”。然后我使用了与原始帖子中嵌入的完全相同的 .ocamlinit。那行得通。之后我尝试安装 yojson 和 async,但出现了 type_conv 已安装等错误。之后他们开始出现 oUnit 和 pipebang 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 2016-01-16
  • 2022-01-03
  • 2020-07-24
相关资源
最近更新 更多