Я новичок в OCaml, и я хотел бы знать, как написать код ocaml в файл, а затем скомпилировать его для запуска, когда захочу. Теперь я использую OCaml, набрав ocaml
на терминале mac или linux и написав код, но когда я закончил и я закрою программное обеспечение, я потеряю всю работу.Компиляция и запуск в OCaml
ответ
Есть много вариантов, но самым простым (по моему мнению) является использование ocamlbuild
. Если у Вас есть свой код в файле program.ml
, затем
ocamlbuild program.native
будет скомпилировать программу в родной двоичном, так что вы можете запустить его так просто, как:
./program.native
Существует также ярлык, который позволяет компилировать и запускать программу в качестве одного из действий:
ocamlbuild program.native --
вы можете передать аргументы в вашу программу после --
знака.
Если ваша программа состоит из более чем одного файла, это не проблема, так как ocamlbuild
сканирует ее и автоматически создает все зависимости в правильном порядке.
Если вашей программе необходимы внешние библиотеки, вы можете указать их с помощью опции -pkg
или -pkgs
. Как это:
ocamlbuild -pkg lwt program.native
Я думаю, этот учебник - Compiling OCaml projects может помочь. В нем описываются основы компиляции OCaml. Он обсуждает ocamlc
и ocamlopt
компиляторы в глубину и другие инструменты компилятора.
Это действительно помогает. Благодарю. –
Я изучил все учебники 'ocaml.org' при изучении OCaml. Помогли! –
Если вы используете Сердечник Джейн стрит, то вам следует использовать команду corebuild
для компиляции, которая включает в себя кучу дефолтов после ocamlbuild
:
ocamlbuild \ -use-ocamlfind \ -pkg core \ -tag "ppx(ppx-jane -as-ppx)" \ -tag thread \ -tag debug \ -tag bin_annot \ -tag short_paths \ -cflags "-w A-4-33-40-41-42-43-34-44" \ -cflags -strict-sequence \ "[email protected]"
Я получил эту here.
- 1. Компиляция ocaml в блокноте ++
- 2. Условная компиляция в OCaml
- 3. Компиляция из OCaml repl
- 4. OCaml + Menhir Компиляция/Письмо
- 5. Компиляция и запуск ApiDemos
- 6. Типы модулей OCaml и отдельная компиляция
- 7. Vim [компиляция и] запуск ярлыка
- 8. Компиляция и запуск приложений Yaws
- 9. OCaml - компиляция программы в виде библиотеки
- 10. Статические (компиляция-время) утверждают в OCaml?
- 11. Компиляция и запуск кода C в блокноте ++
- 12. Запуск и компиляция «Привет, мир!» в Haskell
- 13. Компиляция примера взаимодействия C-OCaml из руководства
- 14. Кросс-компиляция приложений ocaml для ARM
- 15. Автоматическая компиляция и запуск стороннего кода
- 16. Visual Studio Удаленная компиляция и запуск
- 17. Компиляция и запуск Java-программы на Mac
- 18. Looping C компиляция и запуск через BASH
- 19. Компиляция и запуск кода на C# программно
- 20. Компиляция и запуск из командной строки java
- 21. Компиляция и запуск кода Exploit-DB
- 22. Запуск (& компиляция) ненадежного кода пользователя
- 23. Компиляция/запуск Javascript в Notepad ++ [начальный вопрос]
- 24. Компиляция/запуск файлов Java в Terminal
- 25. Компиляция и запуск приложений на C++ в разных версиях Ubuntu
- 26. Код Visual Studio, компиляция и запуск в одиночной команде
- 27. Компиляция и запуск Java-кода в Sublime 3 (Mac)
- 28. Компиляция и запуск в java. Давая мне ошибки
- 29. Компиляция и запуск java в Unix (из Windows)
- 30. компиляция и запуск программ c/C++ в памяти
Вы также можете использовать компилятор 'ocamlc' bytecode и собственный компилятор' ocamlopt', например. в вашем 'Makefile' –
В чем разница между' ocamlbuild' и 'ocamlc'? –
'ocamlc' и' ocamlopt' являются компиляторами. 'ocamlbuild' - это инструмент автоматизации, который использует их за сценой. Вы можете использовать опцию '-classic-output'' ocamlbuild', чтобы посмотреть, что на самом деле происходит. – ivg