我是 Erlang 新手,我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd,一切都很顺利,直到我开始在
ejabberd
中编译一些外部模块。它开始抛出错误undefined parse transform 'lager_transform'
。
我尝试了以下所有内容:
get-deps
,make clean
,make deps
,make install
。之后我可以看到 lager_transform.beam 已制作并存在于 /lib/
文件夹中。-compile[{parse_tranform},{lager_transform}]
,即使如此,他们也没有运气。我对此真的很困惑,无法完成安装。我之前在 Fedora 上使用 ejabberd 15.11 和 otp 18.2 做过这个,当时它使用的是
p1_logger
而不是啤酒。但现在当我使用 otp 18.2 和 ejabberd 16.0 或 15.11 进行全新安装时,我得到了 lager_transform undefined error
。
请确保按照文档中的说明编译 ejabberd:http://docs.ejabberd.im/admin/guide/installation/#installing-ejabberd-from-source-code
例如,您可以使用以下命令进行编译:
./configure --enable-lager --enable-mysql
make
您需要运行configure 和make 来正确设置构建链。
导航到您的 ejabberd 项目目录 cd /路径/到/ejabberd
获取依赖项 钢筋获取部门
编译具有详细输出的项目 钢筋编译-v
如果问题仍然存在,请执行干净的构建 使干净 使部门 制作
验证 lager_transform.beam 是否位于预期目录中 找到 _build/default/lib/lager/ebin -name "lager_transform.beam"
设置Erlang库路径 导出 ERL_LIBS=/path/to/ejabberd/_build/default/lib
再次编译看看问题是否解决 钢筋编译-v