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
файлы.