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
文件是一个很好的(必要的)做法。
我正在尝试使用 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
文件是一个很好的(必要的)做法。