带有子目录的 Oasis 构建配置
Oasis build configuration with subdirectories
我正在使用 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 不可见,导致 'unbound module A' 错误。如果我手动调用 ocamlc,我可以添加 -I src/util 标志以使 a.mli 再次可见。
如何在不使文件成为完整库的情况下将其他路径添加到 oasis 配置?
您可以尝试将 <src/utils>: include
添加到您的 _tags
文件中(此文件由 oasis 生成,您无法在任何软件中编辑它:在生成部分的范围之外进行编辑。
这将直接告诉 ocamlbuild 添加一个 -I src/utils 到它的参数,我不认为如果不创建一个库就告诉 oasis 自己做这个是不可能的。
oasis 是不可能的,你需要修改你的 _tags
文件,但我不建议你这样做。一般的方法是在您的 oasis 文件中创建 Library
条目。这有助于保持项目结构整洁。如果你不想从 utils 创建一个库,那么为什么要费心把它移到一个子文件夹中。
我正在使用 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 不可见,导致 'unbound module A' 错误。如果我手动调用 ocamlc,我可以添加 -I src/util 标志以使 a.mli 再次可见。
如何在不使文件成为完整库的情况下将其他路径添加到 oasis 配置?
您可以尝试将 <src/utils>: include
添加到您的 _tags
文件中(此文件由 oasis 生成,您无法在任何软件中编辑它:在生成部分的范围之外进行编辑。
这将直接告诉 ocamlbuild 添加一个 -I src/utils 到它的参数,我不认为如果不创建一个库就告诉 oasis 自己做这个是不可能的。
oasis 是不可能的,你需要修改你的 _tags
文件,但我不建议你这样做。一般的方法是在您的 oasis 文件中创建 Library
条目。这有助于保持项目结构整洁。如果你不想从 utils 创建一个库,那么为什么要费心把它移到一个子文件夹中。