Как отделить двоичный код от источника в ocaml? - PullRequest
0 голосов
/ 09 мая 2018

Мой источник находится рядом с каталогом сборки

ocamlc -c file1.ml
ocamlc -c file2.ml
…
ocamlc -o main.ml ….cmo

У меня есть источник с файлом, сгенерированным компиляцией.

Я бы хотел параметр ocamlc, который позволил бы мне поместить этот файл в каталог сборки.

Я знаю, что могу сделать ocamlc -o build/main.ml .....cmo, но я бы тоже хотел иметь .cmo в каталоге сборки

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 09 мая 2018

Ответ на ваш главный вопрос очень прост: чтобы поместить основной двоичный файл вашего приложения OCaml в папку build, вам просто нужно запустить:

ocamlc -o build/main.exe main.ml ….cmo

Действительно, как указано в документации (man ocamlc):

-o exec-file
Укажите имя выходного файла, созданного компоновщиком. имя выхода по умолчанию - a.out, в соответствии с традицией Unix. [...]

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

Чтобы избежать этого и упростить сборку вашего проекта OCaml, я предлагаю использовать инструмент управления сборкой для OCaml, например, один из четырех инструментов, упомянутых в конце учебника Компиляция проектов OCaml :

  • ocamlbuild
  • GNU make
  • 1027 * Бонус-байка *
  • Oasis

( ocamlbuild , вероятно, самый простой инструмент среди четырех.)

Но вы также можете рассмотреть возможность использования Dune (ранее известного как JBuilder) , который является системой сборки, используемой большинством пакетов в opam .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...