这是我基于ocamlbuild项目结构:单OCaml的模块导致大约接口不一致的假设
_tags.ml:
true: package(batteries)
Main.mlpack
Stream
主/ Stream.ml
module MyStream = BatStream
I a米试图编译使用
ocamlbuild -use-ocamlfind Main.cmo
错误消息Main
模块似乎相当不合逻辑对我说:
+ ocamlfind ocamlc -pack Main/Stream.cmo -o Main.cmo
File "_none_", line 1:
Error: The files Main/Stream.cmi and Main/Stream.cmi
make inconsistent assumptions over interface Stream
Command exited with code 2.
Compilation unsuccessful after building 3 targets (0 cached) in 00:00:00
这是从OPAM使用的OCaml 4.02.1。
这只发生在与电池连接时,所以我只能算出Batteries.Stream
和Main.Stream
之间有冲突。事实上,如果我添加更多的模块与依赖关系,我可以得到一个消息像
Error: The files /home/ken/.opam/4.02.1/lib/batteries/batteries.cmi
and Main/Stream.cmi make inconsistent assumptions
over interface Stream
不过,我不希望子模块发生冲突。
这是怎么发生的?对我来说,模块可能会通过接口与自身发生冲突,这似乎是不可能的。
你有没有尝试过清理(即'室射频_build')? – Drup
@Drup的确如此。包含这三个文件的新项目将生成给定的错误。 –