Erlang 加载
Posted
技术标签:
【中文标题】Erlang 加载【英文标题】:Erlang deps loading 【发布时间】:2015-07-20 09:46:03 【问题描述】:我正在尝试编写 erlang 第一个应用程序。它有 https://github.com/emedia-project/erlffmpeg 在部门,我几乎有 相同的 Makefile。
当我在 erlffmpeg 目录和 eval README 中运行 erlang shell
例如,一切正常。但是当我从项目的目录中执行此操作时,出现错误
喜欢:ucp detect undef
。所以,我的 erl shell 看到了来自 ffmpeg 的 fns
模块,但是当我尝试评估这个 fns 时,shell 似乎不知道
关于 ffmpeg 的继承部门。
我使用make dev
命令运行erl shell。总之就是erl -pa ebin
deps/*/ebin
似乎我缺少一些关于模块加载的知识。 我该怎么办?你建议我读什么?
谢谢!
【问题讨论】:
【参考方案1】:所以,答案是使用rebar
并将deps 设置为:
deps, [
ffmpeg, ".*", git, "https://github.com/emedia-project/erlffmpeg", "master"
].
在这种情况下rebar
将自动下载根目录deps
中的所有内部依赖项,因此带有命令erl -pa ebin deps/*/ebin
的shell 将连接所有.beam
文件。
非常感谢友好的#erlang 成员。
【讨论】:
您也可以运行rebar shell
来获取一个 erl repl,并为您的应用程序及其依赖项正确设置了加载路径。以上是关于Erlang 加载的主要内容,如果未能解决你的问题,请参考以下文章
在 Elixir 或 Erlang 中,如何在运行时动态创建和加载模块?