在成功地找到并使用ocamlfind之后,我发现很难构建顶层。
我构建了一个包含所有模块的.mltop文件,并将包添加到_tags中,但构建不起作用。它找不到使用其中一个模块编译的C函数。打开-classic-display后,我可以看到文件libcside.a没有被包含,甚至根本没有被编译!C文件被添加为myocamlbuild.ml中的依赖项,
flag ["link"; "ocaml"; "use_cutil"] (S [A"-cclib"; A"-L."; ]);
dep ["link"; "ocaml"; "use_cutil"] ["libcside.a"];在_tags中,
<utilities.*> : use_cutil
<**/*.top> : use_str, use_unix, use_cutil, use_curl, use_mysql最后,在libcside.clib,
cutil.o我在设置顶层的构建时遗漏了一些东西,但我在网上找不到可靠的资源。谢谢。
发布于 2010-03-04 16:39:53
dep只指示ocamlbuild构建它,而不是链接)ocaml_lib "linuxnet";让liblinuxnet_stubs = "liblinuxnet_stubs.“^ !Options.ext_lib in "link"; "ocaml"; "use_linuxnet" "link"; "ocaml"; "use_linuxnet";dep "link";"ocaml";"use_linuxnet";
在liblinuxnet_stubs.clib中:
linuxnet_c.o
请注意,C源代码的名称为linuxnet_c.c,因此生成的目标文件不会覆盖linuxnet.ml中的目标文件(反之亦然)。最后在_tags中:
真: use_linuxnet
通过此设置,它将在toplevel中可用(请注意,不需要将Linuxnet放入.mltop,因为linuxnet.cma将通过use_linuxnet标志添加到链接中(使用ocaml_lib生成))。
https://stackoverflow.com/questions/2374136
复制相似问题