Functional programming ocaml中的程序编译问题

Functional programming ocaml中的程序编译问题,functional-programming,ocaml,Functional Programming,Ocaml,我在编译用ocaml编写的程序时遇到了一个问题,在我看来,错误是:错误:未绑定的模块基础,如何解决这个问题? 我声明初学者会使用这种语言 代码中使用的库包括: 开放基础;; 开放式游戏;; 开放式Univsolve;; 开放式解算器 包含模块的文件有:basics.ml basics.mli、paritygame.ml paritygame.mli、univsolve.ml univsolve.mli和solvers.ml solvers.mli…..在Caml论坛可能会有所帮助。在Caml论坛

我在编译用ocaml编写的程序时遇到了一个问题,在我看来,错误是:错误:未绑定的模块基础,如何解决这个问题? 我声明初学者会使用这种语言

代码中使用的库包括: 开放基础;; 开放式游戏;; 开放式Univsolve;; 开放式解算器


包含模块的文件有:basics.ml basics.mli、paritygame.ml paritygame.mli、univsolve.ml univsolve.mli和solvers.ml solvers.mli…..

在Caml论坛可能会有所帮助。

在Caml论坛可能会有所帮助。

基本模块实际上是的一部分,您需要先安装它。

基本模块实际上是,您需要先安装它。

要编译字节码,请使用ocamlc,然后按从左到右的顺序编译所需的任何其他文件,以表示它们的依赖关系。这些文件可以是ocaml源代码文件,也可以是cmo编译文件。要将文件单独编译到cmo,您应该执行以下操作:

ocamlc.opt -c -annot -o util.cmo util.ml
ocamlc.opt unix.cmo str.cmo util.cmo game.ml -o game
建议您在回答中包含用于尝试编译应用程序的字符串,这应该只是常识

代码中使用的库 是:开放基础;;开放式游戏;; 开放式Univsolve;;开放式解算器

包含模块的文件包括: basics.ml basics.mli,paritygame.ml paritygame.mli,univsolve.ml univsolve.mli和solvers.ml 解算器。mli

这些不是所谓的库。这些是模块。库是编译成cma以供分发的cmo文件的集合。但所有这些都没有说明模块之间的依赖关系,也没有告诉我们编译中的错误。我建议,一旦你掌握了一些基本知识,你就可以继续进行ocamlbuild。对于这样的简单项目,它可以毫不费力地编译项目。它将解析依赖项并仅编译自上次调用以来已更改的文件。

要编译字节码,请使用ocamlc,然后按从左到右的顺序编译表示其依赖项的任何其他文件。这些文件可以是ocaml源代码文件,也可以是cmo编译文件。要将文件单独编译到cmo,您应该执行以下操作:

ocamlc.opt -c -annot -o util.cmo util.ml
ocamlc.opt unix.cmo str.cmo util.cmo game.ml -o game
建议您在回答中包含用于尝试编译应用程序的字符串,这应该只是常识

代码中使用的库 是:开放基础;;开放式游戏;; 开放式Univsolve;;开放式解算器

包含模块的文件包括: basics.ml basics.mli,paritygame.ml paritygame.mli,univsolve.ml univsolve.mli和solvers.ml 解算器。mli


这些不是所谓的库。这些是模块。库是编译成cma以供分发的cmo文件的集合。但所有这些都没有说明模块之间的依赖关系,也没有告诉我们编译中的错误。我建议,一旦你掌握了一些基本知识,你就可以继续进行ocamlbuild。对于这样的简单项目,它可以毫不费力地编译项目。它将解析依赖项并只编译自上次调用以来已更改的文件。

很可能是链接模块时出现了问题。如果使用ocamlc或ocamlopt链接,请将basics.cmo/cmx放在第一位:

上面的顺序可能不正确-例如partiygame.cmo可能依赖于solver.cmo,在这种情况下,您应该切换顺序


或者只使用ocamlbuild,因为它会为您解决所有这些问题。

最有可能的情况是,您链接的模块顺序错误。如果使用ocamlc或ocamlopt链接,请将basics.cmo/cmx放在第一位:

上面的顺序可能不正确-例如partiygame.cmo可能依赖于solver.cmo,在这种情况下,您应该切换顺序

或者只使用ocamlbuild,因为它会为您解决所有这些问题