2017-06-06 52 views
0

我试图使用Windows 8.1配置ejabberd模块下面的链接 https://github.com/Mingism/ejabberd-stanza-ack ejabberd版本17.01 二郎8.3 版本这是命令我使用未定义解析转型 “lager_transformation” ejabberd 17.01

erlc -I $ {C:\ Program Files \ ejabberd-17.01 \ lib \ ejabberd-17.01 \ include} mod_stanza_ack.erl

我把mod_stanza_ack.erl也放在include文件夹中,但是它给出lagger_transformation错误。这是不同的版本问题?这个链接还说,它是ejabberd版本13.x.我认为它也可以在最新版本中工作。我在这里错过了什么?

回答

0

您不必将文件mod_stanza_ack.erl移动到包含目录中,而是将其放入工作目录中。然后在该目录中启动命令窗口,执行:

erlc -I "C:/Program Files/ejabberd-17.01/lib/ejabberd-17.01/src" mod_stanza_ack.erl 

注意你必须把源文件路径为“双引号”,并用“/”而不是“\”为路径,即使是在窗口(至少它是这样工作的,我没有尝试使用双斜杠“\”,一个单斜杠逃脱下一个字符!)

注2 ejabberd的测试版本是4年旧的,您应该准备好面对使用较早版本的兼容性问题。

编辑

你至少需要这3个源文件:logger.hrl, ejabberd.hrl, jlib.hrl它们包含在ejabberd-stanza-ack.erl。在当前的ejabberd版本(主分支)中,头文件(* .hrl)像往常一样位于include目录中,但它们不包含ejabberd-stanza-ack.erl使用的xmlel记录的定义,因此您不能使用此版本。

在ejabberd 13中,头文件位于src目录中 - 很奇怪! - ,它们包括必要的记录定义(至少乍一看...)。所以你应该使用这个版本。如果尝试使用更新的文件,则必须验证它是否仍在使用记录定义,并使命令行适应头文件的实际位置。

+0

还是那个错误。我试着用双引号。在ejabberd文件夹中也没有src directry。我通过Windows Installer安装它 –

+0

我编辑了我的答案。 – Pascal