1

依存関係の管理リリースの処理に関する rebar のドキュメントに厳密に従い、以前の質問の 1 つに対する受け入れられた回答に記載されているものと同様のリリースを作成しようとしました。

ただし、rebar によって生成された OTP リリース内に OTP アプリケーションとして含まれるヨーを作成することはできません。

これが私がすることです:

  • 公式の rebar ドキュメントに従ってリリースを作成します (完了、シンプルな gen_server を /rel/myapp/bin/myapp start で実行できます)
  • プロジェクト ディレクトリの rebar.config ファイルで yaws 依存関係を指定します。
  • 実行rebar get-deps(これは yaws と ibrowse をプルします)
  • これを に追加reltool.config:{app, yaws, [{incl_cond, include}]}
  • のアプリケーションのリストに yaws を追加しますmyapp.app.src
  • rebar compile generate:

... ==> Leaving directory '/myapp/deps/yaws/rel' ==> yaws (compile) yaws.erl:13: can't find include file "yaws_appdeps.hrl" yaws.erl:220: undefined macro 'YAWS_APPDEPS' yaws.erl:174: function start_app_deps/0 undefined yaws.erl:194: function start_app_deps/0 undefined ERROR: Command [compile] failed!

ノート:

  • 公式の yawsドキュメントは、この問題に関してあまり説明していないようです。

  • ヨーをカウボーイに変更すると、そのようなエラーは発生しません。

アップデート

これが私のディレクトリ構造です:

. ├── apps │   └── myapp ├── deps │   ├── ibrowse │   └── yaws └── rel └── files

4

1 に答える 1

0

yaws の src ディレクトリを開きます。欠落している「yaws_appdeps.hrl」インクルード ファイルには、「.ini」または「in」拡張子が付いている可能性があります。それを削除して、再度コンパイルします

于 2016-02-20T09:49:42.593 に答える