Создание автономной программы OCaml

Я схожу с ума, пытаясь понять, как создать бинарный файл в OCaml, для которого не нужно ничего особенного (например, иметь что-то, как установлены инструменты сборки OCaml).

Я использую OMake, и все кажется достаточно крутым, работая на моей машине, также связывая библиотеки с

OCAMLPACKS[] = str unix batteries

работает довольно хорошо, но если я пытаюсь распространять исполняемый файл, это дает мне следующую ошибку:

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

да, я использую GODI, но не вижу видимой причины этой ошибки, может кто-нибудь просветить меня? Кроме того, если у вас есть какие-то хитрости относительно создания автономных приложений, пожалуйста, скажите мне (я уже спорю с GODI, который скомпилировал EveryLib только в его версии x64, и теперь я не могу производить исполняемые файлы x86)

заранее спасибо

2 ответа

Решение

Библиотека ромашки требует настройки во время выполнения. Смотрите README.txt для получения информации о том, как его настроить. В частности, требуются файлы времени выполнения (отсутствующие .mar видишь) чтобы правильно работать.

Я не пользуюсь OMake, ни батареями, ни GODI, ни ромашкой. Но из того, что я вижу, кажется, что проблема заключается в том, что вы ссылаетесь на Батареи, которые, я полагаю, должны использовать Camomile для внутреннего использования, а Camomile полагается на данные, хранящиеся в файловой системе, для предоставления некоторых своих услуг. Он не загружается, если эти данные отсутствуют на конечном хосте.

Обратите внимание, что доставка чисто статических исполняемых файлов - это то, что довольно просто сделать с OCaml. Но для этого вам нужно учитывать, какие библиотеки вы используете (например, если вы используете camomille, вам придется отправлять файлы поддержки).

Другие вопросы по тегам