我正在使用oasis构建我的ocaml项目,源代码存在于名为src的目录中。绿洲构建文件如下所示:
OASISFormat: 0.4
Name: Test
Version: 0.1
Synopsis: no
Authors: Me
License: BSD-3-clause
Plugins: META (0.4)
Executable abc
Path: src
BuildTools: ocamlbuild
MainIs: main.ml
现在我想将文件组织到子文件夹中,将a.mli和a.ml放入src / util中。执行此操作后,模块对ocamlbuild / ocamlc不可见,从而导致“未绑定的模块A”错误。如果我手动调用ocamlc,我可以添加-I src / util标志以使a.mli再次可见。
如何在不使文件成为完整库的情况下向oasis配置添加其他路径?
答案 0 :(得分:5)
绿洲是不可能的,你需要修改你的_tags
文件,但我不建议你这样做。一般方法是在您的绿洲文件中创建Library
条目。这有助于保持项目结构清洁。如果你不想从utils创建一个库,那么为什么要烦恼并将它移动到一个子文件夹中。
答案 1 :(得分:3)
您可以尝试将<src/utils>: include
添加到_tags
文件中(此文件由绿洲生成,您无法对其进行编辑:在生成的部分范围之外进行编辑。
这将直接告诉ocamlbuild在其参数中添加-I src / utils,我不认为可以告诉oasis自己这样做而不需要创建库。