开发者

Building standalone OCaml program

开发者 https://www.devze.com 2023-02-15 15:44 出处:网络
I\'m getting crazy while trying to understand how to produce a binary in OCaml that doesn\'t need anything too specific (eg. having anything as OCaml build tools installed).

I'm getting crazy while trying to understand how to produce a binary in OCaml that doesn't need anything too specific (eg. having anything as OCaml build tools installed).

I'm using OMake and everything seems enough cool while working on my machine, also linking libs with

开发者_开发技巧
OCAMLPACKS[] = str unix batteries

works quite well, but if I try to distribute the executable it gives me the following error:

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

yes I'm using GODI but I don't see any apparent reason for this error, can anyone enlighten me? In addition, if you have any tricks regarding building stand-alone applications please tell me (I'm already arguing with GODI that compiled everylib just in its x64 version and now I'm unable to produce x86 executables)

Thanks in advance


The camomile library requires runtime configuration. See README.txt for informations about how to set it up. In particular, it requires runtime files (the missing .mar you see) to correctly work.


I don't use OMake, neither batteries, neither GODI nor Camomile. But from what I see the problem seems to come from the fact that you link against Batteries which I guess must use Camomile internally and Camomile relies on data stored in the file system to provide some of its service. It fails to load if that data is not present on the final host.

Note that shipping purely static excutables is something that is fairly simple to do with OCaml. But for that you need to consider which libraries you use (e.g. if you use camomille you will have to ship the support files with).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号