2017-01-14 10 views
0

Ich habe eine interpreter.ml Datei, die einen Interpreter und einige type Definitionen enthält.Importieren einer ml-Datei in eine andere

Ich habe einige Testbatterien entwickelt, um zu überprüfen, ob der Interpreter gut funktioniert oder nicht.

Wenn ich die Funktionen, die ich verwende, um das Verhalten des Interpreters in der gleichen Datei des Interpreters zu testen, funktioniert alles gut, aber wenn ich versuche, eine andere Datei für die Tests zu verwenden (sagen wir tests.ml) wurde nicht geladen die Interpreterfunktionen und Definitionen.

die interpreter.ml und tests.ml sind im selben Ordner

ich beide versucht, mit open Interpreter und #use "./interpreter.ml" von innen tests.ml aber es wird nicht kompilieren noch die Warnungen in der IDE heruntergefahren (Art ... Ich bin mit Visual Studio-Code auf MacOs)

ich habe bereits versucht, die official documentation zu folgen, aber es wird nicht mit ocamlopt -c tests.ml

+0

Wenn ich richtig verstehe, ist Ihr Programm + Test in 2 Quelldateien aufgeteilt, und Sie versuchen, diese 2 Dateien zu kompilieren, um eine ausführbare Datei zu erhalten, die den Test durchführt. Ist das korrekt ? Um den Kompiliervorgang zu vereinfachen, haben Sie ocamlbuild verwendet? –

+1

Alternativ können Sie auch cppo verwenden, das einen Präprozessor wie cpp implementiert; Sie können es verwenden, um eine Datei einzuschließen. –

+0

@PierreG. Du hast es gut verstanden. Ich habe ocamlbuild nicht verwendet, weil ich neu in ocaml bin und das Projekt nur aus zwei Dateien besteht und es schien nicht notwendig zu sein –

Antwort

1

Als Ergebnis der Diskussionen kompilieren, wird die ausführbare Datei durch die Erstellung der 2-Dateien erhalten test.ml & interpreter.ml in der richtigen Reihenfolge (test.ml verlässt sich auf Objekte definiert in interpreter.ml; als Folge test.ml verweisen muss Interpreter Objekte entweder über die Klausel open Interpreter oder durch alle relevanten Artikel mit Interpreter prefixing):

ocamlc -o exec interpreter.ml test.ml 

ocamlbuild ist einfacher, als es selbst die Abhängigkeiten aufgelöst: folgenden Befehl ein:

ocamlbuild test.native 

wird die ausführbare Datei erzeugen.

Verwandte Themen