如何使用dune链接本地ocaml库

如何使用dune链接本地ocaml库,ocaml,ocaml-dune,Ocaml,Ocaml Dune,我接管了一个由主程序和库组成的ocaml项目,但库是独立构建的。到目前为止,通过“ocamlopt-I mylib.cmxa myprogram.ml”链接主程序是可能的,但是我在使用ocamlopt的opam库时遇到了问题,所以我决定改为使用“dune” 我的问题是:如何使用dune链接ocaml库,使结果与上面的ocamlopt行相同?这将有助于查看项目的结构。但是,一般来说,如果您有这样的项目结构: root/ |—— dune-project |—— lib/ | |—— dune |

我接管了一个由主程序和库组成的ocaml项目,但库是独立构建的。到目前为止,通过“ocamlopt-I mylib.cmxa myprogram.ml”链接主程序是可能的,但是我在使用ocamlopt的opam库时遇到了问题,所以我决定改为使用“dune”


我的问题是:如何使用dune链接ocaml库,使结果与上面的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))
有关进一步的指导,请参阅
dune
存储库中的