Ocamldoc 和开放模块

Ocamldoc and open modules

我正在尝试使用 ocamldoc 记录我的一个小项目。
我有一个主要 .ml 文件,其中 opens 两个其他 .ml 文件。

$ ocamldoc -html included1.ml included2.ml

工作正常,但是当我添加包含文件时,例如

$ ocamldoc -html included1.ml included2.ml including.ml

我明白了:

File "including.ml", line 5, characters 5-16:
Error: Unbound module Included1
1 error(s) encountered  

我从 ocamldoc documentation 看到打开模块是完全没问题的,直到没有冲突出现。
我该如何进行?

一个模块可以使用其他模块,但是它需要能够看到这些模块的编译接口。因此,在您的情况下,您首先需要编译 .ml 文件以生成 .cmi 文件。然后您需要向 ocamldoc 指出这些文件的位置。所以像这样的事情应该做:

ocamlc -c included1.ml
ocamlc -c included2.ml
ocamlc -c -I . including.ml
ocamldoc -html -I . included1.ml included2.ml including.ml

请注意,一般来说,为每个模块创建 .mli 文件和 ocamldoc 这些文件而不是 .ml 文件是一个很好的(必要的)做法。