0

我正在尝试在 Windows 8.1 中使用以下链接配置 ejabberd 模块 https://github.com/Mingism/ejabberd-stanza-ack ejabberd 版本 17.01 erlang 版本 8.3 这是我正在使用的命令

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。我认为它也可以在最新版本中运行。我在这里缺少什么?

4

1 回答 1

0

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

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

请注意,您必须将源路径放入“双引号”,并使用“/”而不是“\”作为路径,即使在窗口中也是如此(至少它是这样工作的,我没有尝试使用双反斜杠“ \",一个反斜杠转义下一个字符!)

注意 2 ejabberd 的测试版本 13 已有 4 年历史,您应该准备好使用较早的版本来面对一些兼容性问题。

编辑

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

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

于 2017-06-08T20:30:06.373 回答