带有ocamlbuild的模块包
我有以下文件层次结构:带有ocamlbuild的模块包,ocaml,ocamlbuild,Ocaml,Ocamlbuild,我有以下文件层次结构: foo.mlpack Foo/ bar.ml baz.ml foo.ml 我希望能够做到以下几点: let () = Foo.Bar.some_func1 (); Foo.Baz.some_func2 (); Foo.some_func3 () 我如何告诉ocamlbuild在创建foo模块时考虑foo.ml 编辑1 多亏了daniel-bünzli的回答,我能够做我想做的事。现在,我处于以下场景中: _tags foo.mllib foo.
foo.mlpack
Foo/
bar.ml
baz.ml
foo.ml
我希望能够做到以下几点:
let () =
Foo.Bar.some_func1 ();
Foo.Baz.some_func2 ();
Foo.some_func3 ()
我如何告诉ocamlbuild在创建foo
模块时考虑foo.ml
编辑1
多亏了daniel-bünzli的回答,我能够做我想做的事。现在,我处于以下场景中:
_tags
foo.mllib
foo.ml
Foo/
bar.ml
baz.ml
toto.mllib
toto.ml
Toto/
...
bar.ml
...
现在的问题是,Toto.Bar
似乎被Foo.Bar
挡住了。我无法访问Toto.Bar
的内容
编辑2
好的,事实上这不是一个真正的问题
我刚刚重命名了Foo/bar.ml
->Foo/fooBar.ml
因此,我在foo.ml
中有以下内容:
module Bar = FooBar
如果我理解正确的话,Jane Street的人在
Core\u kernel
中使用Core\u list
和其他一些模块做同样的事情。不要使用mlpack
只需按如下方式定义foo.ml:
module Bar = Bar
module Baz = Baz
let some_func3 () = ...
然后用
Foo
别忘了
:将包含在\u标签文件中。不要使用mlpack
只需按如下方式定义foo.ml:
module Bar = Bar
module Baz = Baz
let some_func3 () = ...
然后用
Foo
别忘了:在你的\u标签
文件中包含。谢谢,我正在尝试。假设我还有/Toto/bar.ml
。它会与/Foo/bar.ml
冲突吗?在我上面的评论中提到的情况下,此方法似乎不起作用。谢谢,我现在正在尝试。假设我还有/Toto/bar.ml
。它会与/Foo/bar.ml
冲突吗?在我上面的评论中提到的情况下,此方法似乎不起作用。