与使用相同:
ocamlc -i foo.ml
要为foo.ml生成默认签名,有没有办法从编译文件 (*.cmo) 或存档 (*.cma) 生成签名?
我的用例是我有一个要链接的存档abcd.cma ,其中包含许多模块(例如模块a、b、c和d),我不想打扰多个 *.mli 和 *。 cmi 我的 Makefile 需要处理以编译和链接用户端代码(使用该库)。例如说我有文件uses_a.ml只使用abcd.cma档案中的模块。我的理解是,要与abcd.cma模块链接,我必须通过以下动作:
ocamlc -i a.ml > a.mli
ocamlc -c a.mli
ocamlc -c uses_a.ml
ocamlc abcd.cma uses_a.cmo
如果我无法访问来源或签名,这似乎太复杂或不可能。鉴于我在最后一个命令中向编译器提供了整个存档,我不清楚为什么我必须通过编译(或生成 - 如果我可以访问源)模块的特定签名文件的仪式我我正在使用。最后一个命令可能已被该工具解释为邀请使用存档中存在的任何模块的“默认”签名,该文件中的后续模块使用该行。顺便说一句,我现在不想使用自动 Makefile 生成工具。