0

我有两个 OCaml 模块,即 nhc.ml 和 test.ml。这两个模块都引用 parser.mly、scanner.mll 和 ast.mli。

目标是拥有一个可执行文件,即 nhc.native,我仍然可以在其中引用 test.ml 的函数。

./nhc.native fun_from_test

分开两个模块分别工作:

corebuild nhc.native  
corebuild test.native  

但是当我尝试使用 corebuild 将两者链接如下时:

corebuild nhc.native -mod test

我得到错误:

Error: No implementations provided for the following modules:
     Scanner referenced from test.cmx
     Parser referenced from test.cmx

如果我运行相同的命令,而不首先 mkaing 测试可执行文件(test.native),我会收到以下错误:

File "_none_", line 1:
Error: Cannot find file test.cmx

如何获得指定的功能?

4

1 回答 1

0

我不确定是否有办法使用编译器执行以下操作。但另一种解决方案是只打开 nhc.ml 中的模块,如下所示:

open Test

我得到了我想要的行为。

于 2015-11-02T03:02:46.913 回答