首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OCaml吉祥物无法从.mli文件中找到模块

OCaml吉祥物无法从.mli文件中找到模块
EN

Stack Overflow用户
提问于 2012-07-09 18:06:33
回答 1查看 360关注 0票数 1

给定以下源文件:

代码语言:javascript
运行
复制
(* /tmp/src/A.mli *)
val f : B.t -> B.t
代码语言:javascript
运行
复制
(* /tmp/src/A.ml *)
let f (x : B.t) = x
代码语言:javascript
运行
复制
(* /tmp/src/B.mli *)
type t
代码语言:javascript
运行
复制
(* /tmp/src/B.ml *)
type t = int

我试着运行吉祥物代码检查器,但是它无法绑定从.mli文件中引用的模块,尽管使用了-I标志。它可以很好地解决.ml文件中的绑定问题。

$ mascot.native -config mascot.cfg -I /tmp/src /tmp/src/{A,B}.{ml,mli} -html /tmp/out

File "/tmp/src/A.mli", line 2, characters 8-11:

Error: Unbound module B

loading configuration files...

configuring checks...

analyzing dependencies...

running checks...

reporting to "/tmp/out" with output "html"...

它可以很好地解决.ml文件中的绑定问题。

代码语言:javascript
运行
复制
$ mascot.native -config mascot.cfg -I /tmp/src /tmp/src/{A,B}.ml -html /tmp/out
loading configuration files...
configuring checks...
analyzing dependencies...
running checks...
reporting to "/tmp/out" with output "html"...

我在手册中找不到解释要分析的文件的任何东西,但是我相信Mascot应该在接口文件上运行,因为示例页面包含文档问题的例子:

(**模块描述)*)类型t (*这一个实际上没有文档化(裸注释而不是ocamldoc )。*)

当我只提供源文件时,界面检查似乎不会运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 11:27:29

我遇到了同样的问题,只有编译其接口文件并使B.cmi位于当前目录中,才能使Mascot找到模块B.cmi,例如:

代码语言:javascript
运行
复制
cd /tmp/src
ocamlc B.mli
mascot.native -config mascot.cfg {A,B}.{ml,mli} -html /tmp/out.html

似乎没有命令行选项可以告诉Mascot在哪里查找.mli/.cmi文件;正如问题中提到的,-I标志对此不起作用。

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

https://stackoverflow.com/questions/11400594

复制
相关文章

相似问题

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