我正在尝试构建一个依赖于Core和Core_extended的小型库。我按照Where to place a shared utility module in OCaml?下的说明操作并在ocamlfind中安装了库(在META文件中声明了对Core_extended和Core的依赖)。 在顶层使用它现在很好。
但是,当我尝试使用此库构建测试文件时,它不会自动检测到Core和Core_extend的依赖项。使用这些编译指令
ocamlfind ocamlopt -c -g -package my_lib -thread -o file.cmx file.ml
ocamlfind ocamlopt -g -linkpkg -package my_lib -thread file.cmx -o file.native
我收到以下错误:
错误:未提供以下模块的实现:
Core referenced from /.../mylib.cmx Core_extended referenced from /.../mylib.cmx
如果我使用额外的参数“-package core_extended”编译文件然后编译,那么这是不切实际的。
有没有办法让这个依赖项对编译过程透明,这样“-package my_lib”会自动加载到Core和Core_extended中?
编辑: 这是我的META文件的内容:
name="my_lib"
description="small library"
version="0.1"
depends="core,core_extended"
archive(byte)="my_lib.cmo"
archive(native)="my_lib.cmx"
EDIT2:
在META文件中重命名“取决于”“需要”修复了这个!
答案 0 :(得分:1)
您应该写requires
而不是depends