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. 
+1

我知道很少erlIDE但我觉得很奇怪,你应该在'{PA,...}'目录下双击窝的目录。 – rvirding 2011-06-11 23:54:46

我无法验证它的权利,但你应该能够在编译器选项中使用{pa, '../deps/couchbeam/'}。如果这不起作用,请尝试使用绝对路径。

编译器设置尚未完成,我们计划有一些简单的方法来引用外部库,但我们还没有。每个用户的这种查询都会增加修复它的重要性!

问候, 弗拉德

+0

谢谢你的工作。 erlIDE真的很有趣) – Dimitry 2011-06-14 10:12:07

+0

我也在寻找解决方案,如何在erlide中添加依赖到其他库。任何新闻? – etxalpo 2013-10-25 13:13:02

+0

你可以请进一步解释吗?在Eclipse中,我可以添加到外部库的路径,这是我的项目所依赖的。有没有用户指南解释这个?我用erlide 0.23.1.201306270640。 – etxalpo 2013-10-25 13:17:21