ejabberd和Erlang安装,未定义lager_变换

ejabberd和Erlang安装,未定义lager_变换,erlang,ejabberd,otp,ejabberd-module,Erlang,Ejabberd,Otp,Ejabberd Module,我是Erlang新手,我一直在尝试在EC2 ubuntu机器上安装Erlang和ejabberd,一切都很顺利,直到我开始在ejabberd中编译一些外部模块。它开始抛出错误未定义的解析转换'lager\u transform' 我尝试了以下所有方法: 钢筋是否获得deps,是否清洁,制作deps,制作安装。在这之后,我能够看到lager_transform.beam被制作出来并出现在/lib/文件夹中 检查了rebar.config文件,它的顶部有更大的deps,这被广泛建议,即使在那之后也没

我是Erlang新手,我一直在尝试在EC2 ubuntu机器上安装Erlang和ejabberd,一切都很顺利,直到我开始在
ejabberd
中编译一些外部模块。它开始抛出错误
未定义的解析转换'lager\u transform'

我尝试了以下所有方法:

  • 钢筋
    是否获得deps
    是否清洁
    制作deps
    制作安装
    。在这之后,我能够看到lager_transform.beam被制作出来并出现在
    /lib/
    文件夹中
  • 检查了rebar.config文件,它的顶部有更大的deps,这被广泛建议,即使在那之后也没有帮助
  • 在模块的顶部添加了
    -compile[{parse\u transform},{lager\u transform}]
    ,即使这样,它们也不走运

  • 我真的在这方面受阻,无法完成安装。我以前用ejabberd 15.11和otp 18.2在fedora上做过这件事,当时它使用的是
    p1_logger
    ,而不是lager。但现在,当我使用otp 18.2和ejabberd 16.0或15.11安装fresh时,我遇到了
    较大的未定义错误

    请确保按照文档中的说明编译ejabberd:

    例如,您可以使用以下工具进行编译:

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

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

    您是如何编译这些额外模块的?是的,所有额外模块都已编译,make会处理这些问题。我可以从日志中看到,modules遵从并使install声明lager_transform.bean安装在//lib目录中。谢谢Mickeel,我将尝试使用它。这是有用的。不知怎么错过了。但是钢筋不应该得到deps应该得到它吗?因为它正在安装所有的东西吗?钢筋获得deps是不够的。如果绕过标准ejabberd构建链,代码使用的宏的值就无法正确设置。