如何使用`corebuild`链接两个自定义OCaml模块

时间:2015-11-02 02:59:14

标签: ocaml ocamlbuild

我有两个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

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

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

如何获得指定的功能?

1 个答案:

答案 0 :(得分:0)

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

open Test

我得到了我想要的行为。