Могу ли я добавить каталоги включения в команду erl?
При компиляции файла erlang с erlc
Я могу добавить дополнительные каталоги, например, так:
erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl
Когда я собираю изнутри erl
хотя я не вижу способа сделать это в командной строке. Вместо этого я должен сделать следующее в repl:
> compile:file("src/myapp",
[verbose,
report_errors,
{i,"/home/trotter/code/open-source/yaws/include"}]).
Есть ли лучший способ сделать это, о котором я не знаю, например, передать некоторый аргумент командной строки в erl? Если нет, то любые предложения по устранению этого, которые не требуют от меня вводить неприятные пути каждый раз, когда я компилирую.
2 ответа
Я редко компилирую из оболочки - только для небольших тестовых скриптов с c(foo)
, Моя установка такова:
У меня есть инфраструктура сборки. make
создает программное обеспечение (make - это просто оболочка для rebar
Вот). Затем я могу построить код изнутри emacs
ударяя F12
привязан к compile
Команда Emacs. В vim
вы можете сделать то же самое с :make
команда, если моя память vim служит мне (это было пару лет). Теперь это, конечно, строит код и бросает его в ebin
реж.
Следующим шагом будет начать Erlang со знаниями о ebin
реж:
erl -pa ./ebin
что означает, что любая ссылка на модуль foo
идет и проверяет ./ebin/foo.beam
, Когда я выясняю, что мне нужно исправить какой-то код, я исправляю его в редакторе, компилирую код с F12
а затем выполнить l(foo)
в оболочке, которая горячо загружает код.
Он также имеет то преимущество, что любая ошибка компиляции теперь находится под юрисдикцией редактора, поэтому я могу быстро перейти к ошибке и исправить ее.
Вы можете установить ERL_COMPILER_OPTIONS
,