假设我有一个OCaml库文件foo.cma。是否有命令行工具来打印函数的签名和定义的其他类型?ocamlbrowser实用程序似乎是基于windows的(抱怨$DISPLAY环境变量)。用例是我正在做一个:
ocamlc -c foo.cma main.ml并获取:
File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.splitListUtil.split应该驻留在foo.cma中,但是我不知道有什么基于控制台的工具来验证它。
发布于 2012-03-19 21:34:55
在Debian/Ubuntu上,你有"ocamlobjinfo":
ocamlobjinfo stdlib.cma将显示stdlib.cma中包含的所有设备名称。然后,您可以创建一个短文件:
include SomeModule并使用-i对其进行编译,以查看模块SomeModule中定义的内容。
发布于 2012-03-19 20:27:59
在toplevel中,我只加载cma文件:
#load "foo.cma";;然后我重新定义了一个模块来查看签名:
module Chunk = Foo;;发布于 2012-03-19 21:26:29
为了编译引用ListUtil.split的代码,编译器需要找到相应的listUtil.cmi文件。为了链接该代码,编译器需要包含实现的cma (或cmo)文件。有关说明,请参阅http://mirror.ocamlcore.org/caml.inria.fr/pub/ml-archives/caml-list/2008/09/2bc9b38171177af5dc0d832a365d290d.en.html。
https://stackoverflow.com/questions/9769125
复制相似问题