OCaml顶层和本地库

3
我有一个调用C代码的库。它被编译使用了-custom,-cclib,-l标记,当我使用ocamlc对该库进行编译时,可以正常工作。但是,当我使用"ocaml"顶层来运行脚本时:
ocaml -I /opt/godi/lib/ocaml/pkg-lib/xxxx xxx.cma myprog.ml

它说:

Error: The external function `caml_yyyy' is not available

我需要额外的参数来告诉顶层吗?
2个回答

3
您需要使用“ocamlmktop”构建自己的顶层环境:

$ ocamlmktop -custom -I /opt/godi/lib/ocaml/pkg-lib/xxxx xxx.cma -o ocaml_with_xxx

然后,您可以使用它:

$ ./ocaml_with_xxx -I /opt/godi/lib/ocaml/pkg-lib/xxxx

请注意,仍然需要使用“-I”选项,以便顶层环境可以找到其包含的库的接口文件。

2
我记得你不能在toplevel中使用编译了-custom的库。你应该编译动态加载的存根,以便toplevel可以选择它们。这很容易使用例如oasis完成,如果手动调用ocaml工具,则需要更多的参与。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接