【发布时间】:2014-10-11 05:05:27
【问题描述】:
您好,我正在为 mongooseim(ejabberd fork) 聊天编写模块,我想要一些来自 github 的外部库。我将它添加到钢筋配置中。
{jsx, ".*", {git, "git://github.com/talentdeficit/jsx", {branch, "master"}}}
当我运行项目时,它正在下载到 /deps 目录,但出现以下错误:call to undefined function jsx:encode
我找到 /ebin 目录复制的目录(/dev/lib/ebin)并从 jsx 那里复制 ebin 目录。然后功能是可访问的。每次都手动做是不可能的,我怎么能用钢筋做呢?谢谢。
更新: 我实际上是用 make dev rel 构建的:
会发生以下情况:
devrel: $(DEVNODES)
$(DEVNODES): rebar deps compile deps_dev
@echo "building $@"
(cd rel && ../rebar generate -f target_dir=../dev/mongooseim_$@ overlay_vars=./reltool_vars/$@_vars.config)
cp apps/ejabberd/src/*.erl `ls -dt dev/mongooseim_$@/lib/ejabberd-2.1.8*/ebin/ | head -1`
ifeq ($(shell uname), Linux)
cp -R `dirname $(shell readlink -f $(shell which erl))`/../lib/tools-* dev/mongooseim_$@/lib/
else
cp -R `which erl`/../../lib/tools-* dev/mongooseim_$@/lib/
endif
【问题讨论】:
-
如果您使用 erl 启动它,您可以使用 -pa ebin/deps/*/ebin/ 添加依赖项的搜索路径 - 这只是一个想法,也许您可以做一些类似的事情来解决您的问题跨度>
-
@Sirl33tname 我以
make开头,看看我的更新。 -
@Sirl33tname 它开始正确,但构建错误。我希望 rebar 将 ebin 从某个库放到特定目录,而它不是。
-
@Sirl33tname 哦,我解决了,还是谢谢你
-
很好,所以请将您的解决方案添加为其他用户的答案
标签: erlang ejabberd rebar mongoose-im