编译OCaml中的错误

时间:2016-03-27 15:05:38

标签: ocaml

我是OCaml的新手,我不知道如何编译:

我有这个labyrinthe.mli:

type is                 = bool
type ouverte            = bool

type case               = (is)
type porte              = (ouverte * case * case)
type lab                = (case * porte * porte * porte * porte)

val create_case         : is -> case
val create_porte        : ouverte -> case -> case -> porte
val create_lab          : case -> porte -> porte -> porte -> porte -> lab

和这个main.ml:

let c1          = Labyrinthe.create_case false
let c2          = Labyrinthe.create_case false
let c3          = Labyrinthe.create_case false
let c4          = Labyrinthe.create_case false
let case        = Labyrinthe.create_case true

let p1          = Labyrinthe.create_porte false case c1
let p2          = Labyrinthe.create_porte false case c2
let p3          = Labyrinthe.create_porte false case c3
let p4          = Labyrinthe.create_porte false case c4

let lab         = Labyrinthe.create_lab case p1 p2 p3 p4

我编译了两个这样的文件:ocamlopt labrinthe.mli main.ml但它不起作用。

我有以下消息错误:文件“main.ml”,第1行: 错误:未提供以下模块的实现:          Labyrinthe引自main.cmx

我已经尝试过我在互联网上找到的一切,但没有任何效果:( 有人能帮帮我吗?

1 个答案:

答案 0 :(得分:2)

您没有为labyrinthe界面提供实现。您无法在没有实现的情况下创建可执行文件。毕竟,当你打电话时应该执行什么代码,例如,在main?{/ p>中调用create_case

如果需要单独编译,可以使用-c标志创建目标文件。然后,您可以将该目标文件与包含labyrinthe实现的目标文件链接,以创建可执行文件。