【问题标题】:Compile error in OCamlOCaml 中的编译错误
【发布时间】:2016-07-14 21:59:23
【问题描述】:

我是 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 行: 错误:没有为以下模块提供实现: 从main.cmx引用的迷宫

我已经尝试了我在互联网上找到的所有内容,但没有任何效果:( 有人可以帮我吗?

【问题讨论】:

  • 您要创建可执行文件还是目标文件?
  • 我想创建一个可执行文件,但我也想知道如何制作一个目标文件

标签: ocaml


【解决方案1】:

您没有提供迷宫接口的实现。没有实现就无法创建可执行文件。毕竟,当你在 main 中调用 create_case 时应该执行什么代码?

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

【讨论】:

    最近更新 更多