Как связаться с локальной библиотекой 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 репозиторий.

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