2017-06-06 51 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