gpt4 book ai didi

OCaml 和沙丘 : Integrate small libraries in a larger library

转载 作者:行者123 更新时间:2023-12-04 08:46:50 24 4
gpt4 key购买 nike

我正在开发一个带有沙丘的大型图书馆。让我们调用这个库L .
为了避免造成大困惑,沙丘项目有许多较小的库:A , B , C , ...
这些库相互依赖。
我希望用户能够 opam install L ,然后以 L.A 的身份访问不同的小型库, L.B , ETC。
这样做的正确方法是什么?
按照@glennsl 的评论进行编辑:
这是文件系统树:

l/
l/dune-project
l/a <- This directory contains library A
l/a/dune
l/b <- This directory contains library B
l/b/dune
l/a/dune :
(library
(name a)
(public_name l.a))
l/b/dune :
(library
(name b)
(public_name l.b)
(libraries a))
l/a/dune-project :
(name l)
我找不到如何公开 AB作为 L 的模块.

最佳答案

除非有一些配置设置干扰,否则这应该只是将其他库的模块导出为模块别名的问题:

(* L.ml (and L.mli) *)

module A = A
module B = B
module C = C

(* ... *)
这实际上是 dune自动命名空间库模块。如果你还没有明确的 L 的主模块,您将不得不手动添加也会自动生成的模块别名。

关于OCaml 和沙丘 : Integrate small libraries in a larger library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64276466/

24 4 0