0

私は単純な機能を持っています:

do_stuff(_Whatever) ->
  jiffy:decode(<<"{\"foo\": \"bar\"}">>).

ご覧のとおり、ライブラリ jiffy に依存しています。だから私はそれを追加しましたrebar.config

{deps, [
  {cowboy, {git, "https://github.com/ninenines/cowboy", {tag, "2.0.0-pre.1"}}},
  {jiffy, {git, "https://github.com/davisp/jiffy", {tag, "0.14.8"}}}
]}.
{relx, [{release, { myapp, "0.1.0" },
     [vizcerl,
      sasl
      ]},

    %{sys_config, "./config/sys.config"},
    %{vm_args, "./config/vm.args"},

    {dev_mode, true},
    {include_erts, false},

    {extended_start_script, true}]
}.

しかし、実行rebar3 runしてプログラムを実行すると、その関数が未定義であるというエラーが発生します。

編集:rebar3 treedep が認識されているかどうかを確認するために実行しました。結果は次のとおりです。

└─ myapp─0.1.0 (project app)
   ├─ cowboy─2.0.0-pre.1 (git repo)
   │  ├─ cowlib─1.0.0 (git repo)
   │  └─ ranch─1.0.0 (git repo)
   └─ jiffy─0.14.8 (git repo)
4

1 に答える 1

3

jiffy には、rebar の一部ではないポート コンパイラ プラグインが必要です。次のように rebar.config で構成できます。

{plugins, [
    { pc, {git, "git@github.com:blt/port_compiler.git", {branch, "master"}}}
]}.
{overrides,
 [{override, jiffy, [
     {plugins, [pc]},
     {artifacts, ["priv/jiffy.so"]},
     {provider_hooks, [
         {post,
             [
             {compile, {pc, compile}},
             {clean, {pc, clean}}
             ]
          }]
      }
  ]}
]}.
于 2016-11-25T19:04:13.027 に答える