Erlang:将库添加到应用程序
问题描述:
我使用erlIDE(基于Eclipse)来处理Erlang项目。直到今天一切都很好,但今天我必须在我的应用程序中使用外部库(couchbeam)。我发现,什么是地狱,顺便说一句。)Erlang:将库添加到应用程序
问题很简单 - 我不能包括外部库到编译器路径。我已经使用钢筋来获得couchbeam的依赖,并且还下载了ibrowse,mochiweb和ejson。
如何将这些库包含到编译器路径中,而无需修改ERL_LIBS以在erlIDE中处理项目?
我不想修改ERL_LIBS,因为我可以更改项目的路径,启动新的路径(然后我应该再次修改ERL_LIBS)等等。
我试着编译器选项erlIDE:
{pa, {pa, 'site_stater/deps/couchbeam/'}}
或
{pa, {pa, '../deps/couchbeam/'}}
其中 'site_stater' - 是项目的名称
不知二郎程序员如何专业organaze他们的项目工作流程(他们在哪里编写erlang progs,如何调试它,如何处理外部库等)。
非常感谢您的支持。
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.
答
我无法验证它的权利,但你应该能够在编译器选项中使用{pa, '../deps/couchbeam/'}
。如果这不起作用,请尝试使用绝对路径。
编译器设置尚未完成,我们计划有一些简单的方法来引用外部库,但我们还没有。每个用户的这种查询都会增加修复它的重要性!
问候, 弗拉德
我知道很少erlIDE但我觉得很奇怪,你应该在'{PA,...}'目录下双击窝的目录。 – rvirding 2011-06-11 23:54:46