OCaml:编译多个文件时出现未绑定模块错误

OCaml: Unbound module error when compiling multiple files

所以我正在用 OCaml 编写一个多文件程序,我的目录结构如下所示:

src
 |- module1.ml
 |- section1
     |- module2.ml
     |- module3.ml

其中module1打开module2和module3,module2打开module3。

我用以下代码编译程序:

ocamlopt -o bin/myprog src/module1.ml src/section1/module2.ml src/section1/module3.ml

它在 module2.ml 中抛出错误,说模块 3 未绑定。

有人知道为什么会这样吗?

首先,请注意 .cmx.ml 参数在命令行中的显示顺序是相关的。这意味着 module1 似乎同时使用 module2module3 应该在最后一个位置而不是首先就像你在这里所做的那样。

您还需要添加 -I directory 选项以将给定目录添加到搜索目录列表中。

这应该可以完成工作:

ocamlopt -o bin/myprog -I src/section1 src/section1/module3.ml src/section1/module2.ml src/module1.ml