这是我的 .erlang 文件:
code:add_path("/home/root/projects/myapp/ebin").
code:add_path("/home/root/projects/esmtp/ebin").
application:load(esmtp),
application:set_env(esmtp, smarthost, {"localhost",25}),
application:set_env(esmtp, default_from, "<stuff>"),
application:start(esmtp).
Run Code Online (Sandbox Code Playgroud)
当我跑步时:
erl -boot myapp
Run Code Online (Sandbox Code Playgroud)
它失败:
{"init terminating in do_boot",{'cannot get bootfile','myapp.boot'}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
Run Code Online (Sandbox Code Playgroud)
但如果我跑:
erl -boot myapp -pa /home/root/projects/myapp/ebin
Run Code Online (Sandbox Code Playgroud)
效果很好。这让我相信命令行上的 -pa 与 .erlang 文件中的 code:add_path() 的处理方式不同。我知道 .erlang 文件有效,因为 esmtp 加载并正确运行。-pa 和 code:add_path() 有什么区别?