2013-05-22 4 views
5

Ich versuche im Grunde diese Antwort Stackoverflow in diesem Beitrag liegt zu folgen:Unterschied zwischen Modul und Paket Ocaml

What is the best module for HttpRequest in OCaml

und ich laufen in Probleme. Wenn ich versuche, eine einzige Datei mit nur

open Lwt ;; 

zu starten, bekomme ich und Fehler, dass es ein ungebundenes Modul ist. Ich habe die folgende OPAM Anweisung ausführen:

opam install lwt 

und es hat die richtige Paket installieren.

Also ich denke, das Problem ist der Unterschied zwischen einem Modul und einem Paket, das ich nicht wirklich verstehe. Ich betrachtete diese Frage als eine mögliche Antwort, aber ich war mir nicht sicher, ob es das war, was ich brauchte.

Unbound modules in OCaml

Vielen Dank für die Eingabe Jungs, ich bin neu in Ocaml und ich versuche, die Ins und Outs zu bauen, etwas zu lernen.

+0

, wie Sie es kompiliert werden ?. Ich würde vorschlagen, _oasis (siehe http://oasis.forge.ocamlcore.org/quickstart.html) zu verwenden, um das entsprechende Build-Skript für Sie zu erstellen. – ppolv

Antwort

5

Um ein "Paket" zu verwenden, müssen Sie den Compiler explizit darüber informieren. Ungebundenes Modul in OCaml bedeutet normalerweise eines von zwei Dingen: Sie haben einen Tippfehler für den Modulnamen eingegeben oder Sie haben keinen richtigen Modulsuchpfad festgelegt. Welche Compileroptionen verwenden Sie?

Wenn Sie ocamlfind sollte die Zusammenstellung wie folgt aussehen:

ocamlfind ocamlc -package lwt -c mymodule.ml

dies weist den Compiler zu versuchen Module in lwt Paket-Installationsverzeichnis zu finden, zusätzlich zu den Standardwerten.

Wenn Sie ocamlfind nicht verwenden .... gut, verwenden Sie ocamlfind.

+0

Ich habe versucht, was Sie vorgeschlagen haben. Ich habe überprüft, dass ich das lwt-Paket mit opam installiert habe, dann habe ich ausgeführt, was Sie oben haben, und ich bekomme den gleichen Fehler wie zuvor. "Paket wurde nicht gefunden." –

+0

Wenn "opam list lwt" anzeigt, dass das Paket installiert ist, versuchen Sie "ocamlfind query lwt", um seinen Modulpfad anzuzeigen. Wenn ocamlfind sagt, Paket 'lwt' nicht gefunden, dann ist Ihre Umgebung falsch konfiguriert. Lesen Sie das OPAM-Dokument und überprüfen Sie Ihre Umgebungsvariablen. Wie auch immer, wenn Sie bessere Antworten wünschen, müssen Sie uns mehr Details geben, was Sie probiert haben. – camlspotter