2011-09-15 37 views
2

我閱讀並重新閱讀了文檔和教程,但我對如何創建Erlang應用程序和Rebar的理解仍然有足夠的空洞來模仿瑞士奶酪。非常簡單的東西拋出我。如何將Webmachine集成到Erlang應用程序中?

我正在努力實現一個Erlang版本,它最終將包括我自己的幾個應用程序以及Webmachine,也許是一種或另一種風格的nosql數據庫。使用鋼筋我已經成功地編譯和測試了我的應用程序:ZZZ和ZZZ_Lib。我的目錄結構如下所示。我並不確定它是最佳的,但它很有用。

我已經在... learn1/apps目錄下安裝了Webmachine。

我的下一步是將Webmachine與下面顯示的名爲test_resource:erl的非常簡單的webmachine_demo_resource進行集成。

http://webmachine.basho.com/example_resources.html

但是,當我嘗試編譯,我得到這個錯誤信息:

的src/test_resource.erl:3:找不到包括LIB 「webmachine /包括/ webmachine.hrl」

下面是test_resource.erl出錯行:

-include_lib("webmachine/include/webmachine.hrl"). 

我試圖同時設置ERL_LIBS(我不完全理解)和路徑沒有蘇CCESS。所以,顯然,我不明白如何設置正確的路徑或如何最好地集成Webmachine。

任何和所有的指導,將感激地歡迎。

LRP

*目錄結構

learn1 $ LS 應用程式螺紋鋼rebar.config

learn1 /應用$ LS webmachine ZZZ zzz_lib

learn1 /應用/ zzz_lib/src $ ls yada yada test_resource.erl yada yada

* rebar.config

{sub_dirs, 
    ["apps/zzz", 
    "apps/zzz/src", 
    "apps/zzz_lib", 
    "apps/zzz_lib/src" 
    ] 
}. 

* zzz_lib.app.src

{application, zzz_lib, 
    [ 
    {description, ""}, 
    {vsn, "1"}, 
    {modules, [ 
     yada yada 
]}, 
{applications, [ 
       kernel, 
       stdlib, 
       webmachine 
      ]}, 
{mod, { zzz_lib_app, []}}, 
{env, []} 
]}. 

回答

0

在你的情況下使用ERL_LIBS,你需要將其設置爲/.../learn1/apps

編譯時,你還可以添加{我,迪爾}選項。 但是,根據documentation,它只提及-include和-include_dir,而不是-include_lib。

{i,Dir}當包含文件的 包含文件時,將Dir添加到要搜索的目錄列表中。當遇到-include或-include_dir 指令時,編譯器搜索以下 目錄中的頭文件:

「。」,文件服務器的當前工作目錄;

編譯文件的基本名稱;

使用i選項指定的目錄。首先搜索指定的目錄 。

5

你很有可能最終會更幸福,包括它作爲一個依賴項,而不是一個包含的應用程序。例如見了Riak的核心是如何做的:https://github.com/basho/riak_core/blob/master/rebar.config

要了解更多詳情,您可能會發現,要求郵件列表是值得的:

http://lists.therestfulway.com/mailman/listinfo/webmachine_lists.therestfulway.com

http://lists.basho.com/mailman/listinfo/rebar_lists.basho.com

+0

+1 正是我建議他早些時候(在SO之外)......(但沒有參考:) – Kaos

相關問題