假设我想使用 dune 构建一个具有平面目录结构的项目:
my_project/
├── dune
├── basics.ml
├── basics.mli
├── utils.ml
├── utils.mli
└── main.ml
main.ml
是主程序(入口点)。main.ml
取决于utils.ml
,而utils.ml
反过来又取决于basics.ml
。使用前缀main.ml
调用函数(例如)。utils.ml
Utils
Utils.example_function x y
dune
问题:为了编译这个项目,我应该在文件中写什么?
到目前为止,我看到的所有沙丘示例都使用此目录结构:
my_project/
├── dune
├── main.ml
└── mylib
├── dune
├── basics.ml
├── basics.mli
├── utils.ml
└── utils.mli
在哪里my_project/dune
:
(executable
(name main)
(libraries mylib))
并且my_project/mylib/dune
是:
(library (name mylib))
并使用前缀(例如)main.ml
调用函数。utils.ml
Mylib.Utils
Mylib.Utils.example_function x y
我不想要这个目录结构;我不想为utils.ml
和创建单独的目录basics.ml
。我希望所有源文件与main.ml
. 有没有办法使用沙丘做到这一点?