所需模块 'Yojson' 在没有位置的情况下不可用
Required module 'Yojson' is unavailable without location
我正在尝试使用 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
,ocamlfind list | grep yojson
returns
yojson (version: 1.3.3)
yojson.biniou (version: 1.3.3)
这有效。
ocamlfind ocamlc -package yojson -linkpkg -g -o inter mod.cmo main.cmo
虽然这可行,但 https://github.com/ocaml/dune
是构建 ocaml 代码的更好选择。
我正在尝试使用 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
,ocamlfind list | grep yojson
returns
yojson (version: 1.3.3)
yojson.biniou (version: 1.3.3)
这有效。
ocamlfind ocamlc -package yojson -linkpkg -g -o inter mod.cmo main.cmo
虽然这可行,但 https://github.com/ocaml/dune
是构建 ocaml 代码的更好选择。