Могу ли я добавить включить каталоги в команду ERL?
-
08-10-2019 - |
Вопрос
При составлении файла 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? Если нет, какие-то предложения для высыхания этого нет Требуйте меня ввести неприятные пути каждый раз, когда я компилирую.
Решение
Я редко компилируюсь от оболочки - только для небольших тестовых скриптов с c(foo)
. Отказ Моя настройка это:
У меня есть строительная инфраструктура. make
создает программное обеспечение (сделать только обертку для rebar
здесь). Затем я могу построить код изнутри emacs
ударив F12
привязан к тому compile
команда Emacs. В vim
Вы можете сделать то же самое с :make
Команда, если моя память VIM обслуживает меня (это было пару лет). Теперь это, конечно, строит код и бросает его в ebin
реша.
Следующим шагом - начать Эрланг со знанием о ebin
Dir:
erl -pa ./ebin
что означает, что любая ссылка на модуль foo
идет и проверяет ./ebin/foo.beam
. Отказ Когда я тогда выясни, я должен исправить какой-нибудь код, я исправлю его в редакторе, компилируйте код с F12
а затем выполнить l(foo)
в оболочке, которые горячими загружают код.
Он также имеет преимущество, что любая ошибка компиляции теперь находится под юрисдикцией редактора, поэтому я могу быстро перейти к ошибке и исправить его.
Другие советы
Вы можете установить ERL_COMPILER_OPTIONS
.