2010-12-04 8 views
7

Wenn eine erlang Datei mit erlc Kompilieren ich weitere hinzufügen können, sind Verzeichnisse wie so:Kann ich Include-Verzeichnisse zum Befehl erl hinzufügen?

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

Wenn ich von innen erl obwohl kompilieren, ich sehe keinen Weg, dies auf der Kommandozeile 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, ich weiß nicht, über, wie einige Kommandozeilen-Argument übergeben erl? Wenn nicht, irgendwelche Vorschläge für das Trocknen dieses nicht erfordern, dass ich jedes Mal, wenn ich kompiliere, böse Pfade eintippe.

Antwort

5

Ich kompiliere selten von der Shell - nur für kleine Testskripte mit c(foo). Mein Setup ist das:

Ich habe eine Build-Infrastruktur. make baut die Software (make ist nur ein Wrapper für rebar hier). Ich kann dann Code innerhalb von emacs erstellen, indem ich F12 gebunden an den compile Emacs-Befehl trifft. In vim können Sie das gleiche mit dem :make Befehl tun, wenn mein vim Speicher mir dient (es ist ein paar Jahre gewesen). Jetzt baut das natürlich den Code und wirf ihn in ein ebin Verzeichnis.

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

erl -pa ./ebin 

was bedeutet, dass jede Bezugnahme auf Modul foo geht und überprüft, für ./ebin/foo.beam. Wenn ich dann herausfinden, dass ich etwas Code reparieren muss, repariere ich es im Herausgeber, kompiliere den Code mit F12 und führe dann l(foo) in der Schale aus, die den Code heiß lädt.

Es hat auch den Vorteil, dass jeder Kompilierungsfehler nun unter der Zuständigkeit des Editors liegt, damit ich schnell zum Fehler springen und ihn beheben kann.

+0

Ok, das ist total eine bessere Lösung für mein Problem. Ich wusste nicht, dass ich l (foo) verwenden konnte, um kompilierten Code zu laden. – Trotter

+0

Um die Dinge einfacher zu machen, habe ich eine .erlang Datei im Projektstamm mit 'code: add_patha (" ./ dict ").'. Es fügte den "dict" Weg zum Anfang der Pfadsuchliste jedes Mal hinzu, wenn ich 'erl' auf diesem Projekt führe. – Carlosedp