Ocamldoc и открытые модули

Я пытаюсь документировать небольшой проект с помощью 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 я вижу, что открытие модулей прекрасно, пока не возникнет конфликт.
Как мне поступить?

1 ответ

Решение

Модуль может использовать другие модули, однако он должен видеть скомпилированные интерфейсы для них. Так что в вашем случае вам сначала нужно скомпилировать .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 файлы.

Другие вопросы по тегам