Проблема здесь в том, что Эрланг не может найти каталог LFE ebin. Два способа решить эту проблему:
Используйте явный аргумент -pa <lfe ebin dir>
при запуске LFE, либо в скрипте lfe.bat
, либо при его вызове. Простой, но зашитый.
Используйте переменную окружения ERL_LIBS
. Это описано в документации к модулю code
, http://erlang.org/doc/man/code.html. Если вы создаете дополнительный каталог библиотеки Erlang, скажем, c:\projects\erlang
, отбрасываете приложения Erlang, которые следуют структуре каталогов приложений Erlang, как LFE, и укажите ERL_LIBS
при этом сервер кода автоматически добавит каталоги ebin, которые он там найдет, в путь к коду.
Это также описано в Как установить LFE на Ubuntu Karmic? , но в контексте UNIX.
Функция ERL_LIBS
должна определенно лучше рекламироваться.
РЕДАКТИРОВАТЬ: Ответ на комментарий @Shantanu Kumar.
У меня нет доступа к машине с Windows, поэтому я не могу проверить ее должным образом. Кажется, проблема в том, что при использовании lfe_boot
пытается запустить программу порта ttysl
, которая, похоже, не работает в Windows, по крайней мере, при запуске erl.exe
. Некоторые решения, которые стоит попробовать:
Используйте взамен werl.exe
. Это может сработать, но я бы все равно это сделал.
Попробуйте запустить Erlang обычным способом с помощью werl.exe -pa ebin
(чтобы получить правильный путь загрузки) и вручную запустить оболочку LFE с помощью lfe_shell:server().
Попробуйте запустить Erlang с werl.exe -pa ebin -noshell -s lfe_shell start
. Это будет запускать lfe_shell
как shell , но ^G
будет недоступен.
Также, хотя это удобно, вам не нужно использовать оболочку LFE для запуска LFE, вы можете использовать обычную оболочку Erlang и просто вызывать функции LFE «обычным» способом. Вы можете стать немного шизофреником с двумя форматами IO, но нет никаких проблем. : -)
Надеюсь, это поможет.