首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从控制台检查库(.cma)签名

从控制台检查库(.cma)签名
EN

Stack Overflow用户
提问于 2012-03-19 19:13:29
回答 3查看 307关注 0票数 6

假设我有一个OCaml库文件foo.cma。是否有命令行工具来打印函数的签名和定义的其他类型?ocamlbrowser实用程序似乎是基于windows的(抱怨$DISPLAY环境变量)。用例是我正在做一个:

代码语言:javascript
复制
ocamlc -c foo.cma main.ml

并获取:

代码语言:javascript
复制
File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.split

ListUtil.split应该驻留在foo.cma中,但是我不知道有什么基于控制台的工具来验证它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-19 21:34:55

在Debian/Ubuntu上,你有"ocamlobjinfo":

代码语言:javascript
复制
ocamlobjinfo stdlib.cma

将显示stdlib.cma中包含的所有设备名称。然后,您可以创建一个短文件:

代码语言:javascript
复制
include SomeModule

并使用-i对其进行编译,以查看模块SomeModule中定义的内容。

票数 9
EN

Stack Overflow用户

发布于 2012-03-19 20:27:59

在toplevel中,我只加载cma文件:

代码语言:javascript
复制
#load "foo.cma";;

然后我重新定义了一个模块来查看签名:

代码语言:javascript
复制
module Chunk = Foo;;
票数 5
EN

Stack Overflow用户

发布于 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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9769125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档