0

我需要在 OCAML 包的一个模块 compute.ml 中添加 csv 模块。(参见mysql 中的讨论 ocaml hash

你知道修改makefile的简单方法(在我的情况下这是一个复杂的文档,我认为我不能完全重写它或切换到ocamlfind安装)以启用没有“Unbound value Csv.load”的编译错误信息?

即我可以在现有的稳定 Ocaml 包中包含一个新库吗?

修改模块:compute.ml,

修改;

 let data = Csv.load ("foo.csv")
         ....

编译期间的错误消息:

camlp5r ../wserver/pa_macro5.cmo -DUNIX -o compute.ppo compute.ml
ocamlopt.opt -warn-error A -I ../wserver -I ../sally -I +camlp5 -c -impl compute.ppo
File "compute.ml", line 110, characters 13-21:
Error: Unbound value Csv.load

感谢帮助

4

1 回答 1

3

您必须使用适当的 -I 选项告诉 ocamlopt 在哪里查找 csv.cm{i,x} 文件,就像您在命令行末尾已有的文件一样。如果该库位于 OCaml 标准库的子目录中(由 ocamlc -where 给出),您可以使用 -I +csv_dir,就像在您的示例中对 camlp5 所做的那样。否则,您必须提供完整路径。

请注意,这不是您必须做的唯一修改:您还必须在执行应用程序/库的最终链接的命令行上添加 csv.cmx(或 .cmxa)。

于 2012-09-12T17:41:24.207 回答