sexplib的编译错误

时间:2017-02-05 15:20:48

标签: ocaml ocamlfind

我需要在我的程序中使用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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

ocamlc -package ppx_sexp_conv -linkpkg prog.ml