私の Erlang アプリケーションでは、外部ライブラリ (erlzmq2) を使用したいと考えています。私は erlang の初心者であり、パッケージ化またはコンパイルする方法がわかりません。現在、コンパイルに rebar を使用しています。答えが rebar.config ファイルの編集に基づいている場合は、より便利です。
質問する
849 次
2 に答える
5
rebar.config
幸いなことに、リポジトリのルートにがあるため、ライブラリは rebar パッケージ化されているように見えます: https://github.com/zeromq/erlzmq2
依存関係がまだ構成されていないと仮定すると、これを独自の に追加するだけですrebar.config
:
{deps, [
{erlzmq2, "2.*", {git, "git://github.com/zeromq/erlzmq2", {tag, "2.1.11"}}}
]}.
これは、「2.1.11」リリースを追加するために機能します。頭に逆らって作業することもできます:
{deps, [
{erlzmq2, "3.*", {git, "git://github.com/zeromq/erlzmq2"}}
]}.
「deps」エントリの形式は次のとおりです。
- x.app ファイルに表示されるアプリケーションの名前 ( erlzmq2.app.src 行 1 )
- x.app ファイルの「vsn」に一致する Regex ( erlzmq2.app.src、4 行目)。このサニティ チェックをバイパスする場合は、「.*」を使用できます。
- 依存関係を取得できる場所を指定するタプル。の場合、URL に加えてまたはタプルを指定
git
できます。branch
tag
アプリケーションを Rebar と Reltool でパッケージ化することは、まったく新しい問題であり、複雑な問題だと思います。しかし、アプリケーションがかなり小さい/一回限り/非公式の場合は、Rebar の「escriptize」コマンドを試すことができます。
アプリケーションが「foo」の場合foo.erl
、適切な を持つ src が必要main/1
です。次に、に追加しますrebar.config
:
{escript_incl_apps, [erlzmq2]}.
コマンドラインから(担当者を取得してコンパイルした後)、実行します
rebar escriptize
Rebar は、すべてのバイナリと「encrypt_incl_apps」のバイナリを、実行可能ファイルとして実行される単一のファイルに詰め込みます。
于 2013-10-19T17:39:25.987 に答える