Używam OCaml. Pierwszą rzeczą, którą chcę wiedzieć, jest zbudowanie projektu OCaml. Teraz, po prostu chcę czegoś głupiego, prostego, ponieważ dopiero się uczę. Czy ktokolwiek mógłby wskazać mi system kompilacji wraz z przykładem typu "Witaj, świecie" do korzystania z tego systemu kompilacji?Jaki jest głupio prosty sposób na skompilowanie projektu OCaml?
Odpowiedz
ocamlopt jest standardowym kompilatorem kodu natywnego. Typowa składnia build to:
ocamlopt -o execname module1.ml module2.ml
Można użyć ocamlc
skompilować do kodu bajtowego zamiast.
Ogólnie standardowa biblioteka jest już dołączona. Jeśli jesteś na systemie * nix, i chcą to, powiedzmy, bibliotekę Unix, chcesz zrobić coś takiego
ocamlopt -o execname unix.cmxa module1.ml module2.ml
plików CMXA rodzimych bibliotekami kodu, pliki CMA są bibliotekami kodu bajtowego.
Dla bardziej skomplikowanych kompilacji, istnieje program ocamlfind, który pomaga zlokalizować biblioteki. Możesz także użyć narzędzia GNU i podobnych narzędzi. Więcej informacji można znaleźć here. This to strona o użyciu gmake.
This jest ok "pierwszą stroną kodera Ocaml".
Here to strona wykładów dla klasy Ocaml, którą zabrałem na studia. Nie próbuj jednak uderzać w profesora Guntera o jakiekolwiek wskazówki, chociaż była złym trollem, jeśli służy pamięci.
Prawdopodobnie szukasz numeru ide. Spójrz na Know of an OCAML IDE?.
wyjaśnia podstawy kompilacji. Na dole tej strony znajduje się sekcja o nazwie Automated build systems
i linki do tematów: Compiling with GNU make
i Compiling with Omake
obie zawierające próbki.
Właściwie wolę używać emacs. I na przykład "Witaj świecie", myślałem raczej o skrypcie typu "cześć świat", a nie o "świecie cześć" dla OCaml.:-) –
Odpowiedź z najbardziej upvotes na pytanie # 118935 jest "Emacs w trybie Caml, lub trybie Tuareg", spójrz ;-) – VolkerK
Miałem dużo więcej szczęścia z Omake niż z ocamlbuild - to całkiem proste wyświetlić listę pakietów zależnych w pliku omake; Nie mogłem wymyślić, jak to zrobić z ocamlbuild. Ostatnio czytałem na liście mailingowej ocaml, że program ocamlbuild nie jest już obsługiwany. – aneccodeal
Spójrz na ocaml-make
autorstwa Markusa Mottle. Projekt obejmuje OCamlMakefile
. Skopiuj to do swojego katalogu źródłowego i stworzyć Makefile
, np .:
SOURCES = hello.ml
RESULT = hello
-include OCamlMakefile
Prawdopodobnie wiedzą o tym, ale tylko w przypadku, gdy nie, OCaml obejmują rEPL, którego można użyć do kodu interaktywnie bez konieczności kompilacji. Może być bardzo przydatny, gdy uczysz się po raz pierwszy.
Możesz wpisać, #use "
Istnieje również ocamlbuild. Z tego prostego projektu bez zależności zewnętrzne jest to tak proste, jak
ocamlbuild prog.native
to jest naprawdę łatwy sposób, chociaż dokumentacja jest do bani. Pomocne może być również debugowanie programu przy użyciu kompilacji toplevel, "ocamlbuild prog.top" – nlucaroni
Pomaga. Możesz go również znaleźć tutaj. https://realworldocaml.org/v1/en/html/a-guided-tour.html – eccstartup
Z mojego doświadczenia wynika, że jest to zdecydowanie najłatwiejszy sposób na rozpoczęcie kompilacji wielomodułowych projektów Ocaml. –
Chciałbym również dodać kolejny Makefile
dla SML, który używam dla moich projektów.
Dostępne są przykłady użycia Makefile
.
Przychodzący projekt to OASIS, całkiem sprytny system konstrukcyjny opracowany przez Sylvaina Le Gall'a. Używa go w wielu swoich projektach OCaml, więc ja.
- 1. Konwertowanie OCaml na F #: Czy istnieje prosty sposób symulacji najwyższego poziomu OCaml #trace w F #
- 2. Jaki jest najlepszy sposób uruchomienia projektu django na aws?
- 3. Jaki jest prosty sposób obliczenia nakładania się obrazu i wielokąta?
- 4. Jaki jest standardowy sposób na usunięcie elementu z listy w OCaml?
- 5. Jaki jest najlepszy sposób modyfikacji konfiguracji projektu z poziomu wtyczki?
- 6. Jaki jest prosty przykład błędu zmiennoprzecinkowego/zaokrąglania?
- 7. Jaki jest poprawny sposób usuwania obrazów zasobów z projektu VS?
- 8. Jaki jest prosty przykład asynchronicznej funkcji javascript?
- 9. Czy istnieje sposób na skompilowanie klasy Kotlin do JavaScript za pomocą Gradle?
- 10. Prosty sposób na stworzenie macierzy liczb losowych
- 11. Jaki jest najlepszy sposób na skopiowanie listy?
- 12. Jaki jest zalecany sposób na prefiks Console.Write?
- 13. jaki jest dobry sposób na połączenie zestawu?
- 14. Jaki jest najlepszy sposób na naukę Erlanga?
- 15. Jaki jest najlepszy sposób na seed srand()?
- 16. Jaki jest najlepszy sposób na naukę CUDA?
- 17. Jaki jest najlepszy sposób na wdrożenie "timera"?
- 18. Jaki jest obecny status projektu Helios?
- 19. Prosty sposób na zainstalowanie RabbitMQ w Ubuntu?
- 20. XSLT: Prosty sposób na połączenie plików XML
- 21. Prosty sposób na porównanie 2 ArrayLists
- 22. Prosty sposób na przechowywanie NSMutableAttributedString w CoreData
- 23. Jaki jest prosty sposób miniaturowania niektórych działek w R Markdown/knitr?
- 24. Jaki jest stan rozszerzeń składni -ppx dla OCaml?
- 25. W OCaml, jaki jest kanoniczny sposób porównywania z wieloma argumentami funkcji?
- 26. Jaki jest najlepszy sposób na analizowanie strony internetowej w Ruby?
- 27. Jaki jest prosty kod F #, który generuje instrukcję .tail IL?
- 28. jaki jest najlepszy sposób zastosowania maski do EditText na Androida?
- 29. Jaki jest najlepszy sposób na znalezienie odwrotności datetime.isocalendar()?
- 30. Jaki jest najlepszy sposób na klonowanie/duplikowanie projektu do nowego z git?
Miałem mój sprawiedliwy udział w profesorach złych trolli. Punkt odnotowany. :-) –