Ocaml 所需模块“Yojson”不可用,且没有位置

Ocaml 所需模块“Yojson”不可用,且没有位置,ocaml,ocamlfind,Ocaml,Ocamlfind,我正在尝试使用Yojson构建一个简单的程序:main.ml文件只是 let () = exit 1; 并且mod.ml文件包含 open Yojson open Yojson.Basic.Util let rec json_to_tree json = let _ = json |> member "key" in () 我有一个Makefile,它首先编译.ml文件,然后链接。为简单起见,假设我们运行以下三个命令: ocamlfind ocamlc

我正在尝试使用Yojson构建一个简单的程序:main.ml文件只是

let () = exit 1;
并且mod.ml文件包含

open Yojson
open Yojson.Basic.Util
let rec json_to_tree json = 
        let _ = json |> member "key" in
        ()
我有一个Makefile,它首先编译.ml文件,然后链接。为简单起见,假设我们运行以下三个命令:

ocamlfind ocamlc -package yojson -g  -c mod.ml
ocamlfind ocamlc -package yojson -g  -c main.ml
ocamlfind ocamlc -package yojson -g  -o inter  mod.cmo main.cmo
问题在于链接零件会产生以下错误:

File "_none_", line 1:
Error: Required module `Yojson' is unavailable
我不知道该怎么解决。使用Unix模块可能会导致类似的错误,在链接时添加Unix.cma可以解决这些错误,但这对Yojson没有帮助

为了完整起见,我通过opam安装了yojson,ocamlfindlist | grep yojson返回

这很有效

ocamlfind ocamlc -package yojson -linkpkg -g -o inter mod.cmo main.cmo
虽然这样做有效,https://github.com/ocaml/dune 是构建ocaml代码的更好选择

ocamlfind ocamlc -package yojson -linkpkg -g -o inter mod.cmo main.cmo