2017-01-16 10 views
0

ejabberd에 대해 새로운 xmpp 라이브러리를 사용하는 모듈을 컴파일하려고합니다.rebar3가 자체 컴파일 할 수있는 종속성을 컴파일 할 수없는 이유는 무엇입니까?

내가 아주 간단한 rebar.config 파일을했습니다 :

{deps, [ 
    {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.1.4"}}} 
]}. 

내가 rebar3 eunit 또는 rebar3 compile 내가 오류 메시지가 실행하려고 :

$ rebar3 compile 
===> Verifying dependencies... 
===> Fetching xmpp ({git,"https://github.com/processone/xmpp", 
           {ref,"c010141487632db1666bcbf64f90f42c0fde50aa"}}) 
===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"3.1.0">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/rebar3_hex-3.1.0.tar 
===> Compiling rebar3_hex 
===> Fetching fast_xml ({pkg,<<"fast_xml">>,<<"1.1.18">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/fast_xml-1.1.18.tar 
===> Fetching pc ({pkg,<<"pc">>,<<"1.4.0">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/pc-1.4.0.tar 
===> Compiling pc 
===> Fetching stringprep ({pkg,<<"stringprep">>,<<"1.0.7">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/stringprep-1.0.7.tar 
===> Fetching p1_utils ({pkg,<<"p1_utils">>,<<"1.0.6">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/p1_utils-1.0.6.tar 
===> Compiling p1_utils 
===> Compiling fast_xml 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/fast_xml/c_src/fxml.c 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/fast_xml/c_src/fxml_stream.c 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/fast_xml/priv/lib/fxml.so 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/fast_xml/priv/lib/fxml_stream.so 
===> Compiling stringprep 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/stringprep/c_src/stringprep.cpp 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/stringprep/priv/lib/stringprep.so 
===> Compiling xmpp 
===> Compiling _build/default/lib/xmpp/src/xmpp_util.erl failed 
_build/default/lib/xmpp/include/xmpp.hrl:29: can't find include file "fxml.hrl" 

그러나, 나는 따로이 모듈을 컴파일 할 때, 작동 방식 :

$ cd _build/default/lib/xmpp 
$ rebar3 compile 
===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"3.1.0">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/rebar3_hex-3.1.0.tar 
===> Compiling rebar3_hex 
===> Verifying dependencies... 
===> Fetching fast_xml ({pkg,<<"fast_xml">>,<<"1.1.18">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/fast_xml-1.1.18.tar 
===> Fetching pc ({pkg,<<"pc">>,<<"1.4.0">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/pc-1.4.0.tar 
===> Compiling pc 
===> Fetching stringprep ({pkg,<<"stringprep">>,<<"1.0.7">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/stringprep-1.0.7.tar 
===> Fetching p1_utils ({pkg,<<"p1_utils">>,<<"1.0.6">>}) 
===> Downloaded package, caching at /Users/marcp/.cache/rebar3/hex/default/packages/p1_utils-1.0.6.tar 
===> Skipping p1_utils (from {pkg,<<"p1_utils">>,<<"1.0.6">>, 
            <<"EF0951DDF38E92B7E479AF4B8DC950DF76AF8C1030432EF68B7FD7AD17C436FE">>}) as an app of the same name has already been fetched 
===> Compiling p1_utils 
===> Compiling fast_xml 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/fast_xml/c_src/fxml.c 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/fast_xml/c_src/fxml_stream.c 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/fast_xml/priv/lib/fxml.so 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/fast_xml/priv/lib/fxml_stream.so 
===> Compiling stringprep 
===> Compiling /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/stringprep/c_src/stringprep.cpp 
===> Linking /Users/marcp/Desktop/erlang-test/myapp/_build/default/lib/xmpp/_build/default/lib/stringprep/priv/lib/stringprep.so 
===> Compiling xmpp 

어떻게 작동합니까? 좋아할거야? xmpp 라이브러리의 rebar.config.script이 비난을 받고 있습니까?

+0

는'이렇게 DEBUG = 1 rebar3의 compile'은 자주 나에게 도움이 :) – filmor

답변

0

xmpp은 rebar3를 사용하여 컴파일 할 수 없습니다. issue on GitHub을 열었습니다. 내 rebar.config 파일에 다음과 같은 추가 해결 방법으로

는 일 :

{overrides, [ 
    {add, xmpp, [{erl_opts, [{i, "_build/default/lib/fast_xml/include"}]}]} 
]}.