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 ответа
Решение
Чтобы построить этот проект, используйте следующую команду в корне проекта:
./configure
make build
Вы найдете xencat.native
файл в корневой папке.
Вы также можете использовать opam
построить его, как opam
будет обрабатывать все зависимости для вас. Просто зайдите в корень проекта и скажите:
opam pin add vchan .
и ответьте "да" на все вопросы, которые опам просит.