Могу ли я добавить каталоги включения в команду 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,

см. http://www.erlang.org/doc/man/compile.html

Другие вопросы по тегам