【问题标题】:Add Path to Erlang Search Path?将路径添加到 Erlang 搜索路径?
【发布时间】:2010-11-17 05:47:33
【问题描述】:

我最近安装了带有 debian 包的 Erlang RFC4627 (JSON-RPC)。我使用以下方式运行测试服务器:

sudo erl -pa ebin

然后在提示符处:

test_jsonrpc:start_httpd().

返回

ok

我使用 http://:5671/ 进行了测试,并得到了成功消息。

但是,当我尝试运行 rabbitmq-http2 时,我得到了自述文件所说的错误,这是由于 rfc4627 的代码不在 erlang 搜索路径上引起的。我如何把它放在路径上。我在 Dave Thomas 的博客上看到了一些建议将路径放入文件中的内容:

~/.erlang

这似乎对我不起作用(也许我做错了?)。

【问题讨论】:

  • 戈登,感谢您在下面的回答(投票赞成)。不幸的是,我尝试了几种方法,包括 .erlang 文件和将路径应用到 make 文件中的 -pa 。我想我的问题对 rfc4627 和 rabbitmq-http2 比较特殊。
  • 添加有关带有梁的目录的路径以及如何将路径添加到代码服务器的更多信息。特别是,你在哪里有 rfc4627 库的梁?
  • 克里斯蒂安,实际上,我得到了这一切,我一直想回应这个解释我所做的一些事情。我可能会在这周晚些时候这样做。

标签: erlang path json-rpc


【解决方案1】:

code module 是您在应用程序中操作路径的方式。

您在启动 Erlang shell 时使用的标志 -pa 实际上是指该模块中的一个函数:

add_patha(Dir) -> true | {error, What}

您的主目录中的 .erlang 文件是正确的 - 它在 shell 启动时运行,您可以添加方便的路径。

对于应用程序,您可以使用调用如下内容的批处理文件启动 shell:

erl -pa ./ebin ../../lib/some/path/ebin

erl 的标志行为描述为here

要进行更复杂的路径管理,您需要熟悉 OTP release management 是如何完成的(但我怀疑您还需要一段时间)。

【讨论】:

  • 如上所述,我不需要这样做,但这是一个很好的答案!
  • .erlang 文件的格式是什么?或者更好的是,我在哪里可以找到有关它的文档
  • 它采用 erlang 术语,它们的评估就像在 shell 中输入一样。请参阅此处第 1.7.1 节 erlang.org/documentation/doc-5.2/doc/getting_started/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2011-03-26
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多