ejabberd 和 Erlang 安装,lager_transform 未定义

问题描述 投票:0回答:2

我是 Erlang 新手,我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd,一切都很顺利,直到我开始在

ejabberd
中编译一些外部模块。它开始抛出错误
undefined parse transform 'lager_transform'

我尝试了以下所有内容:

  1. 有钢筋
    get-deps
    make clean
    make deps
    make install
    。之后我可以看到 lager_transform.beam 已制作并存在于
    /lib/
    文件夹中。
  2. 检查了 rebar.config 文件,它的顶部有更大的依赖项,这是广泛建议的,即使在那之后也没有帮助。
  3. 在模块顶部添加了
    -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

erlang ejabberd erlang-otp ejabberd-module
2个回答
2
投票

请确保按照文档中的说明编译 ejabberd:http://docs.ejabberd.im/admin/guide/installation/#installing-ejabberd-from-source-code

例如,您可以使用以下命令进行编译:

./configure --enable-lager --enable-mysql
make

您需要运行configure 和make 来正确设置构建链。


0
投票

导航到您的 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

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.