【问题标题】:How to load Erlang modules conveniently如何方便地加载 Erlang 模块
【发布时间】:2020-03-17 21:41:03
【问题描述】:

我正在询问 Erlang 开发人员他们如何在 erlang shell 中加载特定模块。我觉得这样做很麻烦:

  • 打开erlang外壳
  • 复制模块路径->/path/.../到shell
  • 将路径中的所有反斜杠更改为\path\
  • 运行c(editedPath)

这仅适用于一个模块。 不能只在特定文件夹中打开 erlang 并加载那里的所有内容吗?或者我不能移动到目标文件夹并从该终端启动 erlang shell 并加载模块吗?

P.S我正在使用 VS Code,打开目标文件夹中的集成终端并开始在该相对路径上加载模块会非常有帮助。

【问题讨论】:

    标签: terminal module erlang erlang-shell


    【解决方案1】:

    将所有反斜杠从 path 更改为 `\path\

    为什么会有人这样做?

    或者我不能移动到目标文件夹并从该终端启动 erlang shell 和加载模块?

    是的。这就是我在学习 erlang 时胡闹的做法。但是对于较大的项目,有rebar3,它是erlang 的包管理器。 rebar3 项目为您自己的源代码使用特定的目录结构,然后 rebar3 将使用单个命令获取和编译导入的包以及您的源代码。

    另外,请参阅-pa-pz 的标志 erl command

    【讨论】:

    • 在windows上工作,当我复制路径时我得到`\`,而erlang要求/。否则找不到模块。
    【解决方案2】:

    您需要了解一下代码服务器以及它如何处理代码路径 - 请参阅 http://erlang.org/doc/man/code.html

    设置代码路径(仅限绝对路径),使其指向一个或多个包含 .beam 文件的“ebin”目录 - 或设置 ERL_LIBS 环境变量以指向 Erlang 应用程序的父目录,以便它们自动添加到路径中。

    不要加“.”到路径,除非你只是在玩耍。对于非玩具应用程序,您通常不应该依赖 Erlang VM 的当前工作目录(因为 Erlang 运行许多独立的进程,所以全局当前目录的想法无论如何都非常不稳定)。

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 1970-01-01
      • 2018-11-26
      • 2014-12-21
      • 2014-06-04
      • 2018-05-02
      • 2017-06-15
      • 2011-10-18
      • 2020-07-18
      相关资源
      最近更新 更多