当我试图理解如何在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版本中编译每个库,现在我无法生成x86可执行文件)
提前感谢
发布于 2011-03-06 22:04:15
camomile库需要运行时配置。有关如何设置的信息,请参阅README.txt。特别是,它需要运行时文件(您看到的缺失的.mar )才能正常工作。
发布于 2011-03-06 22:06:24
我不用OMake,也不用电池,也不用GODI和Camomile。但在我看来,问题似乎来自于你链接到电池的事实,我猜电池必须在内部使用Camomile,而Camomile依赖于存储在文件系统中的数据来提供一些服务。如果该数据不存在于最终主机上,则无法加载。
请注意,使用OCaml可以非常简单地发布纯静态可执行文件。但要做到这一点,你需要考虑你使用的是哪些库(例如,如果你使用camomille,你将不得不随附支持文件)。
https://stackoverflow.com/questions/5210741
复制相似问题