ejabberd模块编译错误
ejabberd module compilation error
我是 ejabberd 的新手,正在尝试在 Windows 服务器上为 offline_message_posturl 添加新模块。除了以下内容,我找不到任何专门针对 Windows 的博客 post。我正在使用 ejabberd 15.07 版。
我一直在关注这个博客 post:
http://jasonrowe.com/2011/12/30/ejabberd-offline-messages/
现在我无法从模块文件创建 .beam
文件。我收到此错误:
> c(mod_http_offline).
mod_http_offline.erl:21: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:27: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:44: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:11: function start/2 undefined
mod_http_offline.erl:11: function stop/1 undefined
mod_http_offline.erl:38: function post_offline_message/3 undefined
error
我该如何解决这个错误?
INFO_MSG
宏以前是在头文件ejabberd.hrl
中定义的,但是在ejabberd 13.06中移到了logger.hrl
,在那篇博客之后发布post 写的。包括 logger.hrl
和 ejabberd.hrl
,您的文件应该编译:
-include("ejabberd.hrl").
-include("logger.hrl").
您没有指向 ejabberd 包含 .hrl 文件。最简单的方法可能是将模块添加到 ejabberd src 目录并重新编译所有内容。
否则,您可以使用 erlc 编译您的模块,使用 -I 指向 ejabberd include dirs(根据需要使用尽可能多的 -I 指令)。例如:
erlc -I ../ejabberd/include mod_http_offline.erl
我是 ejabberd 的新手,正在尝试在 Windows 服务器上为 offline_message_posturl 添加新模块。除了以下内容,我找不到任何专门针对 Windows 的博客 post。我正在使用 ejabberd 15.07 版。
我一直在关注这个博客 post: http://jasonrowe.com/2011/12/30/ejabberd-offline-messages/
现在我无法从模块文件创建 .beam
文件。我收到此错误:
> c(mod_http_offline).
mod_http_offline.erl:21: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:27: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:44: undefined macro 'INFO_MSG/2'
mod_http_offline.erl:11: function start/2 undefined
mod_http_offline.erl:11: function stop/1 undefined
mod_http_offline.erl:38: function post_offline_message/3 undefined
error
我该如何解决这个错误?
INFO_MSG
宏以前是在头文件ejabberd.hrl
中定义的,但是在ejabberd 13.06中移到了logger.hrl
,在那篇博客之后发布post 写的。包括 logger.hrl
和 ejabberd.hrl
,您的文件应该编译:
-include("ejabberd.hrl").
-include("logger.hrl").
您没有指向 ejabberd 包含 .hrl 文件。最简单的方法可能是将模块添加到 ejabberd src 目录并重新编译所有内容。
否则,您可以使用 erlc 编译您的模块,使用 -I 指向 ejabberd include dirs(根据需要使用尽可能多的 -I 指令)。例如:
erlc -I ../ejabberd/include mod_http_offline.erl