我在 Rebar 下捆绑了一个 Erlang 应用程序(现在只有几个库模块)。目录结构如下所示:
MyProject
- apps
-- myapp
--- ebin
--- src
--- yada
- rebar
- rebar.conf
MyProject$ ./rebar compile 按预期响应。
我打开 Erlang shell ( MyProject$ erl -pa apps/*/ebin myapp ) 并且可以很好地执行导出的函数。
现在我编辑一个源文件,添加一个导出的函数,然后重新编译。但是,哇——当我尝试执行新导出的函数时,我得到一个错误——未定义的函数。我在 Erlang shell 中执行 myAppModule:module_info/0 。它没有列出我刚刚添加到源文件中的新函数,也没有列出我对其他函数所做的更改。
我删除了相关的 *.beam 文件并重新编译。仍然看不到我的变化。
但是,现在我 q() 退出 Erlang shell 并重新进入。你知道什么!一切正常,包括我的新功能。
为什么会这样?