Создание автономной программы OCaml - PullRequest
1 голос
/ 06 марта 2011

Я схожу с ума, пытаясь понять, как создать двоичный файл в 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 ]

3 голосов
/ 06 марта 2011

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

2 голосов
/ 06 марта 2011

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

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

...