ejabberd模块编译错误

时间:2016-02-17 15:19:29

标签: windows server erlang ejabberd erlang-shell

我是ejabberd的新手,试图在Windows服务器上为offline_message_posturl添加新模块。除了以下内容,我找不到专门针对Windows的博客文章。我使用的是ejabberd 15.07版。

我一直关注此博文: 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

如何解决此错误?

2 个答案:

答案 0 :(得分:7)

response.end宏曾经在头文件INFO_MSG中定义,但在ejabberd 13.06中被移动到ejabberd.hrl,这是在撰写博客文章之后发布的。包括logger.hrl以及logger.hrl,您的文件应该编译:

ejabberd.hrl

答案 1 :(得分:1)

您没有指向ejabberd include .hrl文件。最简单的方法可能是将模块添加到ejabberd src目录并重新编译所有内容。

否则,您可以使用-I编译模块,使用-I指向ejabberd include dirs(根据需要使用尽可能多的-I指令)。例如:

erlc -I ../ejabberd/include mod_http_offline.erl