Erlang: добавить библиотеки в приложение - PullRequest
2 голосов
/ 11 июня 2011

Я использую erlIDE (на основе Eclipse) для работы над проектами Erlang. До сегодняшнего дня все было хорошо, но сегодня я должен использовать внешнюю библиотеку (couchbeam) в своем приложении. Я узнал, что, черт возьми, кстати.)

Проблема проста - я не могу включить внешнюю библиотеку в путь к компилятору. Я использовал rebar для получения зависимостей couchbeam, а также скачал ibrowse, mochiweb и ejson.

Как включить эти библиотеки в путь к компилятору, не изменяя ERL_LIBS для работы над проектом в erlIDE?

Я не хочу изменять ERL_LIBS, потому что я могу изменить путь проектов, начать новый (затем мне нужно изменить ERL_LIBS снова) и т. Д.

Я пробовал опции компилятора в erlIDE:

{pa, {pa, 'site_stater/deps/couchbeam/'}}

или

{pa, {pa, '../deps/couchbeam/'}}

где 'site_stater' - название проекта

Интересно, как профессиональные программисты на эрланге организуют рабочий процесс своих проектов (где они пишут проги на эрланге, как отлаживают, работают с внешними библиотеками и т. Д.) Большое спасибо за внимание.

UPDATE Я написал простую функцию для загрузки библиотек, но я думаю, что это все еще неправильный способ решения этой проблемы:

load_libraries() ->
    ProjectRoot = filename:join([filename:absname("./"), "site_stater"]),
    {ok, DepsList} = file:list_dir(ProjectRoot ++ "/deps/"),
    lists:foreach(fun (Folder) ->
                       RealFolder = ProjectRoot ++ "/deps/" ++ Folder,
                       case filelib:is_dir(RealFolder) of
                           true ->
                               code:add_patha(filename:join([RealFolder, "/ebin"]));
                           false -> ok
                       end
                  end,
                DepsList),
    ok.

1 Ответ

2 голосов
/ 13 июня 2011

Я не могу проверить это прямо сейчас, но вы должны иметь возможность использовать {pa, '../deps/couchbeam/'} в опциях компилятора. Если это не сработает, попробуйте использовать абсолютный путь.

Настройки компилятора еще не закончены, мы планируем иметь более простой способ обращения к внешним библиотекам, но мы еще не там. Каждый такой запрос от пользователей увеличивает важность его исправления!

С уважением, Влад

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...