Posso aggiungere includere le directory al comando Erl?
-
08-10-2019 - |
Domanda
Quando si compila un file Erlang con erlc
posso aggiungere ulteriori includono le directory in questo modo:
erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl
Quando sto compilando dall'interno erl
però, non vedo un modo per fare questo sulla riga di comando. Invece, devo fare la seguente all'interno della repl:
> compile:file("src/myapp",
[verbose,
report_errors,
{i,"/home/trotter/code/open-source/yaws/include"}]).
C'è un modo migliore per fare questo che io non so, come ad esempio passando qualche argomento riga di comando per Erl? In caso contrario, suggerimenti per l'essiccazione questo up che non mi richiedono di digitare i percorsi brutto ogni volta che compilo.
Soluzione
io raramente compilare dal guscio - solo per piccoli script di test con c(foo)
. La mia configurazione è questa:
ho un'infrastruttura di compilazione. make
costruisce il software (make è solo un wrapper per rebar
qui). Posso poi costruire il codice dall'interno emacs
colpendo F12
legata al comando compile
emacs. In vim
si può fare lo stesso con il comando :make
se la memoria non m'inganna vim (è stato un paio di anni). Ora, questo, naturalmente, costruisce il codice e gettarlo in un dir ebin
.
Il passo successivo è quello di iniziare con la conoscenza di Erlang dir ebin
:
erl -pa ./ebin
che significa che qualsiasi riferimento a modulo foo
va e controlli per ./ebin/foo.beam
. Quando ho poi capire che devo risolvere qualche codice, ho fissarlo nell'editor, compilare il codice con F12
e quindi eseguire l(foo)
nel guscio che hot-carichi il codice.
Essa ha anche il vantaggio che qualsiasi errore di compilazione è ora sotto la giurisdizione l'editor in modo da poter passare rapidamente l'errore e risolvere il problema.
Altri suggerimenti
è possibile impostare ERL_COMPILER_OPTIONS
.