我有一个调用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
我需要额外的参数来告诉顶层吗?
发布于 2012-07-24 11:29:09
您应该使用“ocamlmktop”构建您自己的toplevel:
$ 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,以便toplevel可以找到它所包含的库的接口文件。
发布于 2012-07-24 07:19:37
IIRC您不能在toplevel中使用用-custom
编译的库。您应该编译可动态加载的存根,以便toplevel可以提取它们。这在oasis中很容易做到,如果手动调用ocaml工具,则会涉及更多内容。
https://stackoverflow.com/questions/11624174
复制