Erlang 如何跨多个模块包含.hrl文件rebar3
我有几个模块的目录。对于每个模块,我已经创建了Erlang 如何跨多个模块包含.hrl文件rebar3,erlang,rebar,rebar3,relx,Erlang,Rebar,Rebar3,Relx,我有几个模块的目录。对于每个模块,我已经创建了include(包含*.hrl文件)和src(包含*.erl文件)文件夹。如何在不复制的情况下将*.hrl文件从一个模块共享到另一个模块 对于钢筋,我添加了{erl_opts,[{I,“foldercontainsincludile”}},效果很好 但是对于rebar3,编译失败了,因为它说找不到包含文件“include/xx.hrl”那么我认为您没有伞式项目,您只是在同一级别上有多个目录,每个目录都有自己的由rebar3管理的项目。 比如: roo
include
(包含*.hrl
文件)和src
(包含*.erl
文件)文件夹。如何在不复制的情况下将*.hrl
文件从一个模块共享到另一个模块
对于钢筋,我添加了{erl_opts,[{I,“foldercontainsincludile”}}
,效果很好
但是对于rebar3,编译失败了,因为它说找不到包含文件“include/xx.hrl”那么我认为您没有伞式项目,您只是在同一级别上有多个目录,每个目录都有自己的由rebar3管理的项目。 比如:
root_folder
|- project1
| |- src
| |- include
| | `- one.hrl
| `- rebar.config
|- project2
| |- src
| | `- two.erl
| |- include
| `- rebar.config
…
您希望将one.hrl
包含到two.erl
中
如果是这样的话,你应该考虑其中的一个选项:
A.转向伞形项目结构,如
root_folder
|- rebar.config <<<<<<<< notice this file is here now
`- apps
|- project1
| |- src
| `- include
| `- one.hrl
|- project2
| |- src
| | `- two.erl
| `- include
…
(如果您设法以十六进制.pm格式发布project1)
C.正确设置$ERL_LIBS
,使其包括使用rebar3构建应用程序的路径。类似于
ERL_LIBS=$ERL_LIBS:/path/to/root_folder/project1/_build/lib:/path/to/root_folder/project2/_build/lib:…
希望这有帮助:)您是否尝试过使用
-include_lib
而不是-include
?是的,我尝试过,但不起作用。。。
ERL_LIBS=$ERL_LIBS:/path/to/root_folder/project1/_build/lib:/path/to/root_folder/project2/_build/lib:…