Linker 构建独立的OCaml程序

Linker 构建独立的OCaml程序,linker,ocaml,distribute,ocaml-batteries,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.ma

当我试图理解如何在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争论,GODI只在x64版本中编译了everylib,现在我无法生成x86可执行文件)

提前感谢

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

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

我不使用OMake、电池、GODI和甘菊。但从我所看到的问题似乎来自这样一个事实,即你链接到电池,我猜电池必须在内部使用Camomile,Camomile依靠存储在文件系统中的数据来提供一些服务。如果最终主机上不存在该数据,则无法加载


请注意,使用OCaml发送纯静态可执行文件相当简单。但是,你需要考虑使用哪种库(例如,如果你使用CAMMILL,你就必须使用支持文件)。

< P>我不使用OMAKE,既不使用电池,也不使用GODI和CAMOMELE。但从我所看到的问题似乎来自这样一个事实,即你链接到电池,我猜电池必须在内部使用Camomile,Camomile依靠存储在文件系统中的数据来提供一些服务。如果最终主机上不存在该数据,则无法加载


请注意,使用OCaml发送纯静态可执行文件相当简单。但为此,你需要考虑使用哪些库(例如,如果使用CAMMILL,则必须损坏支持文件)。< /P>是否应该将所有的<代码> MAR < /C>文件与指定的目录一起提供给可执行文件?但是有没有办法强制使用不同的文件夹,而不是在我的“本地”GODI文件夹中查找?您可以尝试使用该模块,并在环境中配置
CAMOMILE\u DATADIR
。如果你通过电池使用甘菊,那么你应该检查电池是如何初始化甘菊的。我应该只提供指定目录中的所有
mar
文件以及可执行文件吗?但是有没有办法强制使用不同的文件夹,而不是在我的“本地”GODI文件夹中查找?您可以尝试使用该模块,并在环境中配置
CAMOMILE\u DATADIR
。如果你通过电池使用甘菊,那么你应该检查电池如何初始化甘菊。