ocamlbuild错误未绑定值

时间:2017-03-25 05:19:40

标签: build ocaml ocamlbuild

所以我们要简短一点。我学习OCaml是为了我正在学习的课程,我正在努力让intellisense能够在Linux上使用VS代码进行设置。为此,我必须首先构建我的文件。问题是,当我尝试构建我的文件“spellc.ml”时,我收到一个错误,即存在未绑定的值。

我有一个像这样的目录结构:

_build/
  src/
    ...
src/
  spellc.ml
  utiles.ml
  ...
.merlin

的src / spellc.ml:

module Spellc = struct
    open Utiles
    [...]

    let someFunc x =
        [...]
        let foo = List.map case lst in

    [...]
end

的src / utiles.ml:

module Utiles = struct
    [...]

    let case x =
        [...]

    [...]
end

.merlin:

S src
B _build/src

根据我的理解,使用像“打开Utiles”这样的开放语句应该包含我当前上下文中“Utiles”模块中包含的所有表达式和函数,以便它们可以直接使用,这样如果我使用它就会'我就像在做Utiles.case。但是当我在终端中使用ocamlbuild编译时,这似乎不起作用:

ocamlbuild -tag bin_annot src/spellc.byte

我收到此错误:

Error: Unbound value case

当我使用由其模块(Utiles.case)作为前缀的函数时,不会发生这种情况。谁能告诉我是否有一种简单的方法可以使用open语句进行编译?

1 个答案:

答案 0 :(得分:0)

感谢dkim,我终于找到了问题的答案。我不明白的是,当你编译OCaml文件时,一个名为utiles.ml的文件已经定义了名为Utiles的模块,所以不需要在.ml文件中添加额外的声明模块Utiles。