Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“未绑定模块渗透性”;在Sublime Text 3中使用OCaml生成系统时出错_Ocaml_Sublimetext3 - Fatal编程技术网

&引用;“未绑定模块渗透性”;在Sublime Text 3中使用OCaml生成系统时出错

&引用;“未绑定模块渗透性”;在Sublime Text 3中使用OCaml生成系统时出错,ocaml,sublimetext3,Ocaml,Sublimetext3,我正试图在Windows8.1上的sublime text 3中为OCaml创建一个构建系统。我在Cygwin中通过opam安装了OCaml,并在OCaml.sublime build文件中键入以下内容: { "cmd": ["C:/OCaml64/home/LENOVO/.opam/4.05.0+mingw64c/bin/ocaml.exe", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector":

我正试图在Windows8.1上的sublime text 3中为OCaml创建一个构建系统。我在Cygwin中通过
opam
安装了
OCaml
,并在
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_尾行“hello world”。我可以使用
ocaml
交互式命令行或使用
ocaml test.ml
从终端直接运行命令。但是,当我在Sublime Text 3中打开文件并运行
Ctrl-B
时,出现以下错误:

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

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

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

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


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

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

ocaml环境赢--


这将在适当的环境设置下启动升华文本。

来源:。

作为一个黑暗中的完整快照,您确定在运行构建之前保存了
ml
文件吗?我不熟悉这种语言,但它将“命令行”作为输入文件的方式听起来好像是认为您是在动态输入文本,而不是从文件中输入文本,如果您试图构建的文件在磁盘上还不存在,则会出现这种情况。@OdatNurd是的,我保存了该文件;谢谢你的提醒!值得一试。:)对我来说,您调用的OCaml编译器似乎找不到它的库。升华文本为被调用的进程提供了哪个环境?也就是说,
CAML\u LD\u LIBRARY\u PATH
或类似的定义是否在此环境中?Hi@mschmidt!我在Cygwin终端中键入了
$printenv CAML\u LD\u LIBRARY\u PATH
,得到了
C:/OCaml64/home/LENOVO/.opam/4.05.0+mingw64c/lib/stublibs
。感谢您的澄清!通过键入
ocamlc-where
,我得到了
C:/OCaml64/home/LENOVO/.opam/4.05.0+mingw64c/lib/ocaml
,我在文件夹中找到了
pervisives.cmi
文件,这条路径似乎就存在了。我随后安装了OCaml(在第一次遇到问题后,我实际上卸载并重新安装了它,但没有任何更改);在命令行中一切正常,但我无法在Sublime Text 3中进行设置。对于这是否是Windows平台上的已知问题,您是否有一些建议?非常感谢!我试试看。