2017-01-16 108 views
0

我試圖編譯一個模塊,使用ejabberd新的xmpp庫。爲什麼rebar3不能編譯它自己可以編譯的依賴關係?

我有一個非常簡單的rebar.config文件:

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

當我嘗試運行rebar3 eunitrebar3 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 

我怎樣才能找出什麼是g在嗎?責怪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"}]}]} 
]}.