ocamlopt и ocamlbuild выдают ошибку модуля Unbound, несмотря на то, что ocamlfind видит нужный модуль

Я пытаюсь собрать инструмент xencat из этого проекта. Когда я пытаюсь использовать ocamlopt построить его, я получаю

$ ocamlopt -o xencat xencat.ml 
File "xencat.ml", line 1, characters 5-13:
Error: Unbound module Cmdliner

Следуя приведенным здесь указаниям, я убедился, что cmdliner установлен и что он виден ocamlfind, а затем попробовал еще раз:

Вот что ocamlfind list показывает:

$ ocamlfind list
bigarray            (version: [distributed with Ocaml])
bytes               (version: [distributed with OCaml 4.02 or above])
...
cmdliner            (version: 0.9.8)
...

Неудачно:

$ ocamlfind ocamlopt -o xencat xencat.ml
File "xencat.ml", line 1, characters 5-13:
Error: Unbound module Cmdliner

Следуя этой странице, я попробовал ocamlbuild:

$ocamlbuild -use-ocamlfind xencat.byte
+ ocamlfind ocamlc -c -o xencat.cmo xencat.ml
File "xencat.ml", line 1, characters 5-13:
Error: Unbound module Cmdliner
Command exited with code 2.

Я явно что-то упускаю, но, будучи новичком в Ocaml, я не знаю, что еще попробовать.

2 ответа

Решение

ocamlbuild -use-ocamlfind -package cmdliner xencat.byte

?

Чтобы построить этот проект, используйте следующую команду в корне проекта:

./configure
make build

Вы найдете xencat.native файл в корневой папке.

Вы также можете использовать opam построить его, как opam будет обрабатывать все зависимости для вас. Просто зайдите в корень проекта и скажите:

opam pin add vchan .

и ответьте "да" на все вопросы, которые опам просит.

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