0

我需要在我的程序中使用 Sexplib。我试过了

ocamlc sexplib.cma prog.ml
Error: Unbound module Sexplib

我得到了错误。但是如果我先加载 ppx_sexp_conv 包,我可以在顶层使用 Sexplib:

#require "ppx_sexp_conv";;
open Sexplib;;

所以我也试过这个:

ocamlfind ocamlc -package ppx_sexp_conv sexplib.cma prog.ml
Error: Error while linking /Users/neko/.opam/system/lib/sexplib/sexplib.cma(Sexplib):
The external function `caml_ba_get_1' is not available

我不知道这意味着什么以及我现在需要做什么......有人可以帮忙吗?

4

2 回答 2

0

链接器缺少包使用的 C 外部组件。您应该能够通过传递来解决此问题,-linkpkg以便ocamlfind它将相关参数传递给链接器:

ocamlc -package ppx_sexp_conv -linkpkg prog.ml
于 2017-02-05T19:20:20.713 回答
0

caml_ba_get_1是 Bigarray 模块的一个函数。您可以尝试在 bigarray 包(或bigarray.cma)中进行链接。在我的系统上,函数定义在libbigarray.a.

于 2017-02-05T16:30:41.997 回答