在尝试理解如何在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可执行文件)
提前致谢
答案 0 :(得分:3)
camomile库需要运行时配置。有关如何设置的信息,请参阅README.txt。
特别是,它需要运行时文件(您看到的缺少.mar
)才能正常工作。
答案 1 :(得分:2)
我不使用OMake,也不使用电池,也不使用GODI和Camomile。但从我看到的问题似乎来自你连接电池的事实,我想必须在内部使用Camomile,Camomile依赖存储在文件系统中的数据来提供它的一些服务。如果最终主机上没有该数据,则无法加载。
请注意,使用OCaml可以非常简单地运送纯静态可删除的内容。但为此您需要考虑使用哪些库(例如,如果您使用camomille,则必须随附发送支持文件)。