¿Puedo añadir incluir los directorios al comando ERL?
-
08-10-2019 - |
Pregunta
Al compilar un archivo de Erlang con erlc
puedo añadir también cuentan con directorios, así:
erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl
Cuando estoy compilando desde dentro erl
sin embargo, no veo una manera de hacer esto en la línea de comandos. En su lugar, tengo que hacer lo siguiente dentro de la réplica:
> compile:file("src/myapp",
[verbose,
report_errors,
{i,"/home/trotter/code/open-source/yaws/include"}]).
¿Hay una mejor manera de hacer esto que no sé acerca, tales como pasar un argumento de línea de comandos a ERL? Si no es así, cualquier sugerencia para el secado de esto que no Me requieren para escribir caminos desagradables cada vez que compilar.
Solución
Yo rara vez compilar desde el shell - sólo para los scripts de prueba con pequeñas c(foo)
. Mi configuración es la siguiente:
I tiene una infraestructura de generación. make
construye el software (make es sólo un envoltorio para rebar
aquí). A continuación, puedo construir código de dentro emacs
golpeando F12
con destino a la orden del compile
emacs. En vim
se puede hacer lo mismo con el comando :make
si mi memoria no me falla vim (que ha sido un par de años). Ahora bien, esto por supuesto se basa el código y tirarlo en un dir ebin
.
El siguiente paso es empezar a Erlang con el conocimiento acerca de la dir ebin
:
erl -pa ./ebin
lo que significa que cualquier referencia a foo
módulo va y cheques por ./ebin/foo.beam
. Cuando luego averiguar que tengo que fijar un cierto código, lo arreglo en el editor, compilar el código con F12
y luego ejecutar l(foo)
en la cáscara que hot-carga el código.
También tiene la ventaja de que cualquier error de compilación está ahora bajo la jurisdicción del editor para que pueda saltar rápidamente al error y solucionarlo.
Otros consejos
puede configurar ERL_COMPILER_OPTIONS
.