2009-09-27 26 views
6

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

11

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ụ.

+2

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. :-) –

3

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 makeCompiling with Omake cả hai bao gồm cả các mẫu.

+1

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.:-) –

+0

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

+0

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

3

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 
2

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.

+0

Bạn có thể nhập, #use "" để bao gồm tệp khi biểu tượng đang chạy. Đừng cho có thêm các mô đun (biên dịch) bổ sung (các tệp .cma) trên dòng lệnh hoặc, #load "filename.cma" trong khung công tác. – nlucaroni

8

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 
+0

đâ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

+0

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

+1

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. –

0

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.

1

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.

Các vấn đề liên quan