构建独立的OCaml程序

时间:2011-03-06 13:23:28

标签: linker ocaml distribute ocaml-batteries

在尝试理解如何在OCaml中生成不需要任何特定任何东西的二进制文件时(例如安装了OCaml构建工具的任何东西),我变得疯狂。

我正在使用OMake,在我的机器上工作时,一切看起来都很酷,还将libs与

连接起来
OCAMLPACKS[] = str unix batteries

工作得很好,但如果我尝试分发可执行文件,它会给我以下错误:

Fatal error: exception Sys_error("/usr/godi/share/camomile/database/general_category.mar: No such file or directory")

是的我正在使用GODI,但我没有看到任何明显的错误原因,任何人都可以启发我吗?另外,如果您有关于构建独立应用程序的任何技巧,请告诉我(我已经与GODI争论仅在其x64版本中编译everylib,现在我无法生成x86可执行文件)

提前致谢

2 个答案:

答案 0 :(得分:3)

camomile库需要运行时配置。有关如何设置的信息,请参阅README.txt。 特别是,它需要运行时文件(您看到的缺少.mar)才能正常工作。

答案 1 :(得分:2)

我不使用OMake,也不使用电池,也不使用GODI和Camomile。但从我看到的问题似乎来自你连接电池的事实,我想必须在内部使用Camomile,Camomile依赖存储在文件系统中的数据来提供它的一些服务。如果最终主机上没有该数据,则无法加载。

请注意,使用OCaml可以非常简单地运送纯静态可删除的内容。但为此您需要考虑使用哪些库(例如,如果您使用camomille,则必须随附发送支持文件)。