-include_lib找不到我的库

时间:2018-07-26 20:21:35

标签: erlang rebar3

我创建了一个像这样的项目:

dev_appserver.py

结构如下:

$> rebar3 new release foo
$> cd foo
$> rebar3 new app bar

现在我想在$> tree foo |-- _build | `-- default |-- _checkouts | |-- bar -> ../bar | `-- rebar.lock |-- apps | `-- foo | |-- include | | `-- foo.hrl | `-- src | |-- foo.app.src | |-- foo_app.erl | `-- foo_sup.erl | |-- bar | `-- src | |-- bar.app.src | |-- bar_app.erl | |-- bar_sup.erl | `-- barlib.erl |-- config | |-- sys.config | `-- vm.args |-- rebar.config `-- rebar.lock 中包括foo.hrl:

barlib.erl

编译给出:

-module(barlib).

%% API
-export([foo/0]).
-include_lib("foo/include/foo.hrl").


foo()->
    ok.

当我删除$> rebar3 compile ===> Verifying dependencies... ===> Compiling bar ===> Compiling _checkouts/bar/src/barlib.erl failed _checkouts/bar/src/barlib.erl:5: can't find include lib "foo/include/foo.hrl" 指令并调用-include_lib时,我可以检索rebar3 shellcode:lib_dir(foo)

这对我来说很好:

code:lib_dir(bar)

那么,为什么include_lib不起作用?

TIA

1 个答案:

答案 0 :(得分:5)

应用bar是否依赖于.app文件中foo元组中的应用application?这通常是使事情正常进行所必需的。