Я взял на себя проект ocaml, который состоит из основной программы и библиотеки, но библиотека создается независимо. Связывание основной программы до сих пор было возможно с помощью «ocamlopt -I mylib.cmxa myprogram.ml», но у меня были проблемы с использованием библиотек opam с ocamlopt, поэтому я решил вместо этого перейти на «дюну».
Мой вопрос: как связать библиотеку ocaml с помощью dune, чтобы результат был таким же, как в строке ocamlopt выше?
Было бы полезно увидеть структуру вашего проекта. Однако в целом, если у вас есть проект, структурированный следующим образом:
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
.