Как связаться с локальной библиотекой ocaml, используя дюну
Я взял на себя проект ocaml, который состоит из основной программы и библиотеки, но библиотека строится независимо. Связывание с основной программой до сих пор было возможно с помощью "ocamlopt -i mylib.cmxa myprogram.ml", но у меня были проблемы с использованием библиотек opam с ocamlopt, поэтому я решил вместо этого перейти на "dune".
Мой вопрос: как мне связать библиотеку ocaml, используя дюну, чтобы результат был таким же, как и в строке ocamlopt выше?
1 ответ
Это поможет увидеть структуру вашего проекта. Тем не менее, в общем, если у вас есть проект, структурированный так:
root/
|—— dune-project
|—— lib/
| |—— dune
| |—— lib.ml
|
|—— bin/
| |—— dune
| |—— bin.ml
Тогда ваш lib/dune
будет выглядеть примерно так
(library
(name mylib)
(public_name mylib)
(libraries core async))
и ваш bin/dune
просто перечислит эту библиотеку среди ее зависимостей
(executable
(name mybin)
(libraries mylib))
Для получения дальнейших указаний обратитесь к hello_world
пример проекта в dune
репозиторий.