我需要在一个OCAML包的一个模块compute.ml中添加csv模块。(参见讨论ocaml hash from mysql)
你知道一个修改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
感谢您的帮助
答案 0 :(得分:3)
你必须告诉ocamlopt在哪里查找带有相应-I选项的csv.cm {i,x}文件,就像你在命令行末尾已有的那样。 如果库位于OCaml标准库的子目录中(由ocamlc -where给出),则可以使用 -I + csv_dir,就像你的例子中的camlp5一样。否则,您将必须提供完整路径。
请注意,这不是您必须执行的唯一修改:您还必须在命令行上添加csv.cmx(或.cmxa),以执行应用程序/库的最终链接。< / p>