未绑定模块标准库

Unbound Module Stdlib

我正在尝试使用 ocamlc 构建代码,但是我遇到了错误 Error: Unbound module Stdlib

/usr/lib/ocaml/目录包括以下内容 stdlib.a stdlib.cma stdlib.cxma stdlib.p.a stdlib.p.cxma

OCaml 版本:4.05.0

标准库最近从 Pervasives 重命名为 Stdlib。您的编译器来自更改之前;即,4.05.0 编译器有一个 Pervasives 模块,没有 Stdlib 模块。您尝试编译的代码很可能是更改后的代码。

通常没有理由提及标准库的名称,因为它“无处不在”。所以您可以尝试删除“Stdlib”。无论你在哪里看到它。或者您可以尝试将其重命名为“Pervasives”。

但是,如果代码比 4.05.0 编译器更新得多,您可能会遇到其他问题。

Stdlib 模块是在 4.07.0 中引入的。在此之前它被称为 Pervasives。看来你在混装。

一些可能有助于解开它的命令:

  • which ocamlc 会告诉你编译器的位置。
  • ocamlc -config 将告诉您标准库的预期位置。

还强烈建议使用 OCaml 包管理器 opam 来管理 OCaml 安装,因为它允许您在多个安装之间切换,并让您在发布最新编译器后立即访问它。