这是我,再次..我正在开发OCaml
项目,我想使用Oasis
来构建整个代码库。以下是我的代码库的组织方式。
src/
core/
init.ml
type.ml
utils.ml
plugin/
main.ml
我首先只使用以下_oasis
文件构建库:
Library "engine"
Path: src/core
Modules:
Init,
Type,
Utils
BuildDepends: deriving, deriving.syntax, core, batteries
XMETADescription: core engine
它工作正常。没有错误,我可以在engine.a
文件夹中找到库_build/src/core
。
但是,当我尝试使用以下方式将库包含在main.ml
中时:
Module T = Engine.Type
...
使用以下_oasis
文件进行编译:
Library "engine"
Path: src/core
Modules:
Init,
Type,
Utils
BuildDepends: deriving, deriving.syntax, core, batteries
XMETADescription: core engine
Executable "main"
Path: src/plugin
MainIs: main.ml
CompiledObject: best
Install: false
BuildDepends: core, batteries, engine
我收到了一个错误:
Unbound module Engine
我在这里做错了吗?谁能给我一些帮助?谢谢!
答案 0 :(得分:1)
您的_oasis
模块定义了一个名为engine
的库,但未定义Engine
模块。因此,您的Init
,Type
和Utils
模块已公开,无需任何前缀即可直接访问。
如果您想将这些模块打包成父母,您可以:
engine.ml
文件Pack: true
文件的Library
部分中使用_oasis
,该文件会将包含的模块打包到名为Engine