(Ocaml) 可视代码上的未绑定模块错误
(Ocaml) unbound module error on visual code
我刚开始学习Ocaml。
我在 Ubuntu 上使用视觉代码作为我的 IDE,
我安装了 OCaml 扩展和 merlin。
我遇到了以下问题 -
我的工作区文件夹仅包含 2 个文件:
a.ml 和 b.ml.
在文件 a.ml 中,我定义了一个名为 "COOL" 的模块,在文件 b.ml 中,我写道:
~ b.ml ~
open COOL;;
我收到一条错误消息 "Unbound module COOL merlin"
有没有办法让它看到文件 a.ml 上的模块?
我试着寻找解决方案,我看到了 makefile 和 .merlin 和 B build
但我不明白,除了我提到的 2 个文件,我什么都没有。
如果有人能告诉我究竟应该做什么才能让这个小例子起作用,我会很高兴。
tl; dr: do ocamlc -c a.ml
(或者任何你的编译命令)来生成 a.cmi
文件,merlin 将使用该文件来获取模块 A
.[=22= 中定义的符号列表]
除了在 b.ml
中你的模块确实被命名为 A.COOL
(除非你在 open COOL
之前 open A
),正如 glennsl 提到的,关键是 merlin
是,据我所知,只看正在编辑的当前文件,即 b.ml
在你的情况下。为了访问外部符号,您因此需要编译其他文件(或者至少编译它们对应的 .mli
,如果它们存在),以便 merlin 可以使用相关的 .cmi
文件。
这隐含在描述构建路径的文档的 paragraph 中,它说“[merlin] 需要知道在哪里可以找到项目其他模块的 cmi 文件”,即那些文件需要首先存在。
我刚开始学习Ocaml。 我在 Ubuntu 上使用视觉代码作为我的 IDE, 我安装了 OCaml 扩展和 merlin。
我遇到了以下问题 -
我的工作区文件夹仅包含 2 个文件: a.ml 和 b.ml.
在文件 a.ml 中,我定义了一个名为 "COOL" 的模块,在文件 b.ml 中,我写道:
~ b.ml ~
open COOL;;
我收到一条错误消息 "Unbound module COOL merlin"
有没有办法让它看到文件 a.ml 上的模块? 我试着寻找解决方案,我看到了 makefile 和 .merlin 和 B build 但我不明白,除了我提到的 2 个文件,我什么都没有。 如果有人能告诉我究竟应该做什么才能让这个小例子起作用,我会很高兴。
tl; dr: do ocamlc -c a.ml
(或者任何你的编译命令)来生成 a.cmi
文件,merlin 将使用该文件来获取模块 A
.[=22= 中定义的符号列表]
除了在 b.ml
中你的模块确实被命名为 A.COOL
(除非你在 open COOL
之前 open A
),正如 glennsl 提到的,关键是 merlin
是,据我所知,只看正在编辑的当前文件,即 b.ml
在你的情况下。为了访问外部符号,您因此需要编译其他文件(或者至少编译它们对应的 .mli
,如果它们存在),以便 merlin 可以使用相关的 .cmi
文件。
这隐含在描述构建路径的文档的 paragraph 中,它说“[merlin] 需要知道在哪里可以找到项目其他模块的 cmi 文件”,即那些文件需要首先存在。