2

私はドキュメントとチュートリアルを何度も読み返しましたが、Erlang アプリケーションの作成方法と Rebar の作成方法についての私の理解には、まだスイス チーズに似ている十分な穴があります。非常に単純なものが私を投げます。

私は Erlang のリリースに向けて取り組んでおり、最終的には私自身のいくつかのアプリケーションに加えて、Webmachine と、何らかのフレーバーの nosql データベースが含まれる予定です。Rebar を使用して、アプリケーションのコンパイルとテストに成功しました: ZZZ と ZZZ_Lib。私のディレクトリ構造を以下に示します。それが最適であるとは確信していませんが、うまくいきます。

...learn1/apps ディレクトリに Webmachine をインストールしました。

私の次のステップは、test_resource:erl という名前で以下に示す非常に単純な webmachine_demo_resource と Webmachine を統合することでした。

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

しかし、コンパイルしようとすると、次のエラー メッセージが表示されます。

src/test_resource.erl:3: インクルード ライブラリ "webmachine/include/webmachine.hrl" が見つかりません

test_resource.erl の問題のある行は次のとおりです。

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

ERL_LIBS (完全には理解していません) と PATH の両方を設定しようとしましたが、成功しませんでした。したがって、明らかに、適切なパスを設定する方法や、Webmachine を統合する最善の方法がわかりません。

ありとあらゆるガイダンスがありがたく歓迎されます。

LRP

*ディレクトリ構造

Learn1$ ls アプリ 鉄筋 rebar.config

Learn1/apps$ ls webmachine zzz zzz_lib

Learn1/apps/zzz_lib/src$ ls ヤダヤダ test_resource.erl ヤダヤダ

* 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, []}
]}.
4

2 に答える 2

5

含まれているアプリとしてではなく、依存関係としてそれを含めると、おそらく幸せになるでしょう。たとえば、Riak Coreの機能をご覧ください: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

于 2011-09-15T20:07:47.637 に答える
0

ERL_LIBSあなたのケースで使用すると、に設定する必要があります/.../learn1/apps

コンパイル時に、{i, Dir} オプションを追加することもできます。ただし、ドキュメントによると、-include_lib ではなく、-include と -include_dir のみが言及されています。

{i,Dir} ファイルを含めるときに検索するディレクトリのリストに Dir を追加します。-include または -include_dir ディレクティブが検出されると、コンパイラは次のディレクトリでヘッダー ファイルを検索します。

"."、ファイル サーバーの現在の作業ディレクトリ。

コンパイル済みファイルのベース名。

i オプションを使用して指定されたディレクトリ。最後に指定されたディレクトリが最初に検索されます。

于 2011-09-15T19:45:35.457 に答える