2017-06-06 6 views
0

私はこれは私が未定義の解析形質転換 "lager_transformation" ejabberd 17.01

erlc -I $を使用していますコマンドです https://github.com/Mingism/ejabberd-stanza-ack ウィンドウでejabberdバージョン17.01 Erlangのバージョン8.3 を8.1以下のリンクを使用してejabberdモジュールを設定しようとしています{C:¥Program Files%¥ejabberd-17.01¥lib¥ejabberd-17.01¥include} mod_stanza_ack.erl

mod_stanza_ack.erlをインクルードフォルダの中に入れても、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 

あなたもで、パスに「\」「二重引用符」にソースパスを入れて、使う「/」ではなく、する必要があります少なくとも1つのバックスラッシュで次の文字をエスケープします)。

注2テストされたバージョンのejabberdは4年です古いものを使用して互換性の問題に直面する準備ができているはずです。

編集あなたは、少なくともこれらの3つのソースファイルを必要とする

logger.hrl, ejabberd.hrl, jlib.hrlは、それらがejabberd-stanza-ack.erlに含まれています。現在のejabberdバージョン(マスターブランチ)では、ヘッダーファイル(* .hrl)は通常どおりインクルードディレクトリにありますが、ejabberd-stanza-ack.erlで使用されるxmlelレコードの定義には該当しません。このバージョンを使用することはできません。

ejabberd 13では、ヘッダーファイルはsrcディレクトリにあります - 奇妙です! - 、それらは必要なレコード定義を含んでいます(少なくとも一見すると...)。だからこのバージョンを使うべきです。より新しいものを使用しようとする場合は、それがまだxmlelレコード定義を使用していることを確認し、コマンドラインをヘッダーファイルの実際の場所に適合させる必要があります。

+0

まだこのエラーが発生しています。私は二重引用符で試しました。また、ejabberdフォルダにはsrcの指示がありません。私はWindowsインストーラを通してインストールしました –

+0

私は私の答えを編集しました。 – Pascal