我创建了一个像这样的项目:
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 shell
和code:lib_dir(foo)
这对我来说很好:
code:lib_dir(bar)
那么,为什么include_lib不起作用?
TIA
答案 0 :(得分:5)
应用bar
是否依赖于.app文件中foo
元组中的应用application
?这通常是使事情正常进行所必需的。