代码之家  ›  专栏  ›  技术社区  ›  largecats

在Sublime Text 3中使用OCaml构建系统时出现“未绑定模块渗透”错误

  •  1
  • largecats  · 技术社区  · 6 年前

    我正试图在Windows 8.1上的sublime text 3中为OCaml创建一个构建系统。我已安装 OCaml 通过 opam 在Cygwin中,并在 OCaml.sublime-build 文件:

    {
    "cmd": ["C:/OCaml64/home/LENOVO/.opam/4.05.0+mingw64c/bin/ocaml.exe", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.ml"
    }
    

    我正在用一个 test.ml 包含 print_endline "hello world";; . 我可以使用 ocaml 交互式命令行或使用 ocaml test.ml . 但是当我在Sublime Text 3中打开文件并运行 Ctrl-B ,我得到以下错误:

    File "command line", line 1:
    Error: Unbound module Pervasives
    

    我在网上搜索了这个错误,但找不到太多适用于我的情况。非常感谢您的帮助!

    2 回复  |  直到 6 年前
        1
  •  2
  •   360NS    6 年前

    如果您安装了以下Ocaml,我在Eclipse下也遇到了同样的OcaIDE问题 this tutorial
    那么这个解决方案也应该适用于您,只需从Cygwin终端类型:

    ocaml-env-win -- "<insert the path to sublime text>" .

    这将启动具有适当环境设置的升华文本。
    资料来源: https://fdopen.github.io/opam-repository-mingw/ocaml-env/#program-startup .

        2
  •  1
  •   ivg    6 年前

    此错误意味着编译器找不到接口文件( pervasives.cmi 文件),用于 Pervasives 单元默认情况下,编译器首先在当前文件夹中搜索,然后在标准库目录中搜索。您可以使用添加更多目录 -I 选项,但在您的情况下, 渗透性 应在标准库中。

    标准库的路径在编译器中编译,并在编译器配置期间指定,请使用 ocamlc -where 打印路径。

    在您的情况下,此路径要么不存在(例如,您删除了它,假设它是一个不必要的构建工件,要么只是移动到另一个地方)、不可访问(一些权限问题),要么不包含库代码(即cmi、cmo、cmx和其他文件)。在任何情况下,这都是您的安装问题。