Frage

Wenn Sie eine Datei mit erlang erlc kompilieren kann ich zusätzliche Include-Verzeichnisse wie folgt:

erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl

Wenn ich von innen erl bin Kompilieren aber ich sehe keinen Weg, diese Linie auf dem Befehl zu tun. Stattdessen habe ich die folgende im ers tun:

> compile:file("src/myapp", 
               [verbose,
                report_errors,
                {i,"/home/trotter/code/open-source/yaws/include"}]).

Gibt es einen besseren Weg, dies zu tun, dass ich nicht über weiß, wie einige Kommandozeilenargumente zu erl vorbei? Wenn nicht, irgendwelche Vorschläge für diese auszutrocknen, dass nicht erfordern mich böse Pfade geben jedes Mal wenn ich kompilieren.

War es hilfreich?

Lösung

ich kompilieren selten aus der Schale - nur für kleine Testskripte mit c(foo). Mein Setup ist dies:

ich eine Build-Infrastruktur. make baut die Software (make ist nur ein Wrapper für rebar hier). Ich kann dann Code aus emacs bauen durch F12 an den compile Emacs Befehl gebunden zu schlagen. In vim können Sie das gleiche mit dem :make Befehl tun, wenn mein vim mich recht erinnere (es ein paar Jahren war). Nun ist diese natürlich den Code erstellt und in ein ebin dir werfen.

Der nächste Schritt ist Erlang mit Wissen über den ebin dir zu starten:

 erl -pa ./ebin

Das bedeutet, dass jede Bezugnahme auf Modul foo geht und prüft, ob ./ebin/foo.beam. Als ich dann herausfinden ich einige Code zu beheben, ich sie im Editor zu beheben, den Code mit F12 kompilieren und dann l(foo) in der Schale, die heiß lädt den Code auszuführen.

Es hat auch den Vorteil, dass jeder Übersetzungsfehler nun unter der Jurisdiktion des Editors ist, damit ich schnell auf den Fehler springen und beheben.

Andere Tipps

Sie können ERL_COMPILER_OPTIONS eingestellt.

finden Sie unter http://www.erlang.org/doc/man/compile.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top