2013-05-22 8 views
5

tôi về cơ bản cố gắng làm theo câu trả lời stackoverflow này nằm trong bài viết này:Sự khác nhau giữa mô-đun và gói Ocaml

What is the best module for HttpRequest in OCaml

và tôi đang chạy trong các vấn đề. Khi tôi cố gắng chạy một tệp duy nhất chỉ với

open Lwt ;; 

Tôi nhận được và nói rằng đây là mô-đun không bị ràng buộc. Tôi đã chạy hướng dẫn OPAM sau:

opam install lwt 

và nó đã cài đặt đúng gói.

Vì vậy, tôi nghĩ vấn đề là sự khác biệt giữa một mô-đun và một gói mà tôi không thực sự hiểu. Tôi đã nhìn vào câu hỏi này như một câu trả lời có thể, nhưng tôi không chắc đó có phải là điều tôi cần hay không.

Unbound modules in OCaml

Thanks for the guys đầu vào, tôi mới để Ocaml và tôi đang cố gắng để tìm hiểu các ins and outs của việc xây dựng một cái gì đó.

+0

làm thế nào bạn biên dịch nó ?. Tôi muốn đề nghị sử dụng _oasis (xem http://oasis.forge.ocamlcore.org/quickstart.html) để tạo kịch bản xây dựng thích hợp cho bạn. – ppolv

Trả lời

5

Để sử dụng "gói", bạn phải thông báo cho trình biên dịch về nó một cách rõ ràng. Unbound module trong OCaml thường có nghĩa là một trong hai điều: bạn đã tạo lỗi đánh máy của tên module, hoặc bạn thất bại trong việc thiết lập một đường dẫn tìm kiếm module thích hợp. Bạn sử dụng các tùy chọn trình biên dịch nào?

Nếu bạn sử dụng ocamlfind, biên soạn nên hình như:

ocamlfind ocamlc -package LWT -c mymodule.ml

này chỉ thị cho trình biên dịch để cố gắng tìm các module trong thư mục cài đặt gói LWT, ngoài cho những người mặc định.

nếu bạn không sử dụng ocamlfind .... tốt, hãy sử dụng ocamlfind.

+0

Tôi đã thử những gì bạn đề xuất. Tôi đã kiểm tra rằng tôi đã cài đặt gói lwt với opam, sau đó chạy những gì bạn có ở trên và tôi nhận được lỗi tương tự như trước đây. "Không tìm thấy gói lwt." –

+0

nếu "danh sách opam lwt" hiển thị gói được cài đặt, hãy thử "truy vấn ocamlfind lwt" để xem đường dẫn mô-đun của nó. Nếu ocamlfind nói Gói 'lwt' không được tìm thấy, thì môi trường của bạn bị định cấu hình sai. Đọc tài liệu OPAM và kiểm tra các biến môi trường của bạn. Dù sao, nếu bạn muốn câu trả lời tốt hơn, bạn phải cho chúng tôi biết thêm chi tiết những gì bạn đã thử. – camlspotter