2011-06-11 161 views
2

我使用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

回答

3

我無法驗證它的權利,但你應該能夠在編譯器選項中使用{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