我有两个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
如何获得指定的功能?
答案 0 :(得分:0)
我不确定是否有办法用编译器执行以下操作。但另一种解决方案是在nhc.ml中打开模块,如下所示:
open Test
我得到了我想要的行为。