gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:40:19 26 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文件是在引导文件加载后读取并执行的,所以erlang在寻找引导文件时还没有添加路径。

另一方面,-pa 是在虚拟机开始查找引导文件之前添加的,以便找到引导文件。

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

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