Kann ich hinzufügen Verzeichnisse auf den erl Befehl enthalten?
-
08-10-2019 - |
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.
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