2

我正在尝试构建一个依赖于 Core 和 Core_extended 的小型库。我按照在 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 中?

编辑:这是我的元文件的内容:

name="my_lib"
description="small library"
version="0.1"
depends="core,core_extended"
archive(byte)="my_lib.cmo"
archive(native)="my_lib.cmx"

编辑2:

在 META 文件中将“depends”重命名为“requires”解决了这个问题!

4

1 回答 1

1

你应该写requires而不是depends

于 2013-11-09T08:01:23.913 回答