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

时间:2011-05-09 05:00:02

标签: erlang

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

src/
  gen_nb_server.erl
priv/
  example
    src/
      example.erl

当我进入示例文件夹并运行“make”,并通过“example:start_link()。”运行示例模块时,它找不到gen_nb_server模块,我想知道如何调用不具备的模块被放在同一个文件夹中?谢谢!

2 个答案:

答案 0 :(得分: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>}

答案 1 :(得分:3)

除了提到的butter71之外,你可以在shell本身加载代码......

1> code:add_path("gen_nb_server/ebin").

您还可以使用code:add_pathacode:add_pathz在路径列表的开头或结尾加载波束文件。