gpt4 book ai didi

erlang - 代码:add_path and using -pa on the command line?有什么区别

转载 作者:行者123 更新时间:2023-12-02 04:42:23 25 4
gpt4 key购买 nike

这是我的 .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).

当我运行时:

erl -boot myapp 

它失败了:

{"init terminating in do_boot",{'cannot get bootfile','myapp.boot'}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

但是如果我运行:

erl -boot myapp -pa /home/root/projects/myapp/ebin

它工作正常。这使我相信命令行上的 -pa 与 .erlang 文件中的 code:add_path() 的处理方式不同。我知道 .erlang 文件有效,因为 esmtp 正确加载和运行。 -pa 和 code:add_path() 有什么区别?

最佳答案

.erlang文件是在boot文件加载后读取执行的,所以erlang寻找boot文件时没有添加路径。

另一方面,-pa 是在 vm 开始寻找引导文件之前添加的,以便找到它。

关于erlang - 代码:add_path and using -pa on the command line?有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com