4

我正在使用 oasis 构建我的 ocaml 项目,源代码位于名为 src 的目录中。oasis 构建文件如下所示:

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 配置?

4

2 回答 2

5

oasis 是不可能的,你需要修改你的_tags文件,但我不建议你这样做。Library一般的方法是在您的 oasis 文件中创建条目。这有助于保持您的项目结构整洁。如果您不想从 utils 创建一个库,那么何必费心把它移到一个子文件夹中。

于 2015-02-04T19:42:14.060 回答
3

您可以尝试添加<src/utils>: include到您的_tags文件中(此文件由 oasis 生成,您无法编辑它:在生成部分的范围之外进行。

这将直接告诉 ocamlbuild 在其参数中添加 -I src/utils,我认为在不创建库的情况下告诉 oasis 自己执行此操作是不可能的。

于 2015-02-04T19:20:08.413 回答