Tôi đang đùa giỡn với OCaml. Điều đầu tiên tôi muốn biết làm thế nào để làm là xây dựng một dự án OCaml. Ngay bây giờ, tôi chỉ muốn một cái gì đó ngu ngốc đơn giản vì tôi vừa mới học. Bất cứ ai có thể chỉ cho tôi hướng tới một hệ thống xây dựng cùng với một ví dụ kiểu "hello world" để sử dụng hệ thống xây dựng đó?Cách đơn giản ngớ ngẩn để biên dịch một dự án OCaml là gì?
Trả lời
ocamlopt là trình biên dịch mã nguồn gốc chuẩn. Cú pháp xây dựng tiêu biểu là:
ocamlopt -o execname module1.ml module2.ml
Bạn có thể sử dụng ocamlc
để biên dịch sang bytecode thay thế.
Thông thường thư viện chuẩn đã được bao gồm. Nếu bạn đang ở trên một hệ thống * nix, và muốn bao gồm, nói, thư viện unix, bạn muốn làm điều gì đó như
ocamlopt -o execname unix.cmxa module1.ml module2.ml
file cmxa được libs mã gốc, file CMA là libs bytecode.
Đối với các bản dựng phức tạp hơn, có chương trình ocamlfind giúp xác định vị trí libaries. Bạn cũng có thể sử dụng GNU và các công cụ tương tự. Thông tin thêm có thể được tìm thấy here. This là trang về cách sử dụng gmake.
This là trang ok "Coder First Ocaml".
Here là trang bài giảng cho lớp Ocaml mà tôi đã học lại ở trường đại học. Tuy nhiên, đừng cố gắng thuyết phục Giáo sư Gunter vì bất cứ lời khuyên nào, cô ấy là một kẻ ác độc nếu trí nhớ phục vụ.
Có thể bạn đang tìm kiếm ide. Hãy xem Know of an OCAML IDE?.
http://www.ocaml-tutorial.org/compiling_ocaml_projects giải thích các khái niệm cơ bản về biên dịch. Ở dưới cùng của trang đó có một phần được gọi là Automated build systems
và liên kết đến các chủ đề Compiling with GNU make
và Compiling with Omake
cả hai bao gồm cả các mẫu.
Thực ra, tôi thích sử dụng các emacs hơn. Và với ví dụ "hello world", tôi đã suy nghĩ nhiều hơn về kịch bản xây dựng kiểu "hello world" thay vì "hello world" cho OCaml.:-) –
Câu trả lời có nhiều câu trả lời nhất cho câu hỏi # 118935 là "Emacs ở chế độ Caml, hoặc chế độ Tuareg", hãy xem ;-) – VolkerK
Tôi đã có nhiều may mắn hơn với omake hơn với ocamlbuild - nó khá dễ liệt kê các gói phụ thuộc trong tệp omakefile; Tôi không thể tìm ra cách để làm điều đó với ocamlbuild. Gần đây tôi đọc trên danh sách gửi thư ocaml rằng ocamlbuild không còn được hỗ trợ nữa. – aneccodeal
Hãy xem ocaml-make
bởi Markus Mottle. Dự án bao gồm OCamlMakefile
. Sao chép này vào thư mục nguồn của bạn và tạo ra một Makefile
, ví dụ .:
SOURCES = hello.ml
RESULT = hello
-include OCamlMakefile
Bạn có thể biết điều này, nhưng chỉ trong trường hợp bạn không, OCaml bao gồm một REPL mà bạn có thể sử dụng để mã hóa một cách tương tác mà không cần phải biên dịch. Nó có thể khá hữu ích khi bạn học đầu tiên.
Bạn có thể nhập, #use "
Ngoài ra còn có ocamlbuild. Đối với các dự án đơn giản mà không phụ thuộc bên ngoài nó cũng đơn giản như
ocamlbuild prog.native
đây là một cách thực sự dễ dàng mặc dù tài liệu hút. Gỡ lỗi chương trình bằng cách sử dụng biên dịch toplevel là hữu ích là tốt, "ocamlbuild prog.top" – nlucaroni
Nó giúp. Bạn cũng có thể tìm thấy nó ở đây. https://realworldocaml.org/v1/en/html/a-guided-tour.html – eccstartup
Theo kinh nghiệm của tôi, đây là cách dễ nhất để bắt đầu biên dịch các dự án Ocaml đa mô-đun. –
Tôi cũng xin thêm một Makefile
cho Ocaml, mà tôi sử dụng cho các dự án của tôi.
Makefile
và sử dụng mẫu có sẵn on the Ocaml website.
Dự án đang triển khai là OASIS, một hệ thống xây dựng khá tiện lợi đang được phát triển bởi Sylvain Le Gall. Ông sử dụng nó trong một loạt các dự án OCaml của mình, do đó, tôi.
- 1. stack overflow ngoại lệ trong chương trình ngớ ngẩn
- 2. Biên dịch chuỗi đơn giản
- 3. Cách tạo một dự án maven đơn giản bằng m2e
- 4. Scala dự án đơn giản giả
- 5. Cách tốt nhất để viết về cách viết một bộ x86 đơn giản là gì?
- 6. Cách chọn phiên bản .NET để biên dịch dự án?
- 7. Cách lập trình và biên dịch một dự án C# khác từ dự án hiện tại
- 8. Thuật toán thu gom rác đơn giản để thử nghiệm với một thông dịch viên đơn giản là gì?
- 9. Cách biên dịch ocaml thành mã gốc
- 10. Làm thế nào để thuận tiện refactor OCaml dự án?
- 11. Biên dịch có điều kiện trong OCaml
- 12. CPU nhỏ nhất, đơn giản nhất mà GCC có thể biên dịch là gì?
- 13. Lỗi khi biên dịch một số mã C++ đơn giản
- 14. Làm cách nào để xây dựng một dự án đơn giản với Cabal?
- 15. "Dịch vụ web" bằng tiếng Anh đơn giản là gì?
- 16. Whats lợi thế của việc biên dịch dự án ASP.NET bằng aspnet_compiler.exe là gì?
- 17. Eclipse - Xuất bản & Chạy Dự án Web Đơn giản
- 18. Một số kỹ thuật để hạn chế phụ thuộc biên dịch trong các dự án C++ là gì?
- 19. Dự án mã nguồn mở C đơn giản
- 20. Cách đơn giản nhất để SSH bằng Python là gì?
- 21. loại dự án HTML đơn giản cho Visual Studio 2010
- 22. Một dự án ndk đơn giản bằng cách sử dụng thư viện Eigen và jni
- 23. Qt Creator, làm cách nào để thêm một dự án C++ vào một dự án khác?
- 24. Trình biên dịch mẫu javascript là gì?
- 25. Có nghĩa là gì để "Mavenize" một dự án?
- 26. Viết trình biên dịch: làm cách nào để lấy các mẫu đơn giản để hoạt động?
- 27. Dự án tốt để tìm hiểu OpenCL là gì?
- 28. Biên dịch dự án Qt vào Eclipse bằng trình biên dịch Cygwin
- 29. Loại nguyên mẫu nào để chọn cho một dự án java đơn giản
- 30. Dự án Lua biên dịch có lỗi (luabind)
Tôi đã chia sẻ công bằng của mình về các giáo sư troll độc ác. Điểm ghi nhận. :-) –