如何调用Erlang中不在同一文件夹中的模块?

why*_*why 1 erlang

我正在学习一个开源项目,主页在这里:https://github.com/kevsmith/gen_nb_server,我发现项目结构是

src/
  gen_nb_server.erl
priv/
  example
    src/
      example.erl
Run Code Online (Sandbox Code Playgroud)

当我进入示例文件夹并运行"make",并通过"example:start_link()."运行示例模块时,它找不到gen_nb_server模块,我想知道如何调用未放置的模块同一个文件夹?谢谢!

小智 5

您可以使用-pa(或-pz)将顶级ebin和priv/example/ebin目录添加到代码路径的前端(或末尾).

# erl -pa gen_nb_server/ebin -pa gen_nb_server/priv/example/ebin
[...]
1> example:start_link().
{ok,<0.33.0>}
Run Code Online (Sandbox Code Playgroud)