在Sublime Text 3中使用OCaml构建系统时出现“Unbound module Pervasives”错误

时间:2017-12-19 05:52:02

标签: ocaml sublimetext3

我正在尝试在Windows 8.1的sublime text 3中为OCaml创建一个构建系统。我在Cygwin中通过OCaml安装了opam,并在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的{​​{1}}构建系统。我可以使用print_endline "hello world";;交互式命令行或使用ocaml直接从终端运行命令。但是当我在Sublime Text 3中打开文件并运行ocaml test.ml时,我收到以下错误:

Ctrl-B

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

2 个答案:

答案 0 :(得分:2)

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

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

这应该使用适当的环境设置启动Sublime Text。
来源:https://fdopen.github.io/opam-repository-mingw/ocaml-env/#program-startup

答案 1 :(得分:0)

此错误表示编译器无法找到pervasives.cmi模块的接口文件(Pervasives文件)。默认情况下,编译器首先在当前文件夹中搜索,然后在标准库目录中搜索。您可以使用-I选项添加更多目录,但在您的情况下,Pervasives应位于标准库中。

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

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