【发布时间】:2016-02-09 10:52:16
【问题描述】:
在 /opt/ejabberd 目录下的 ubuntu 14.04 机器上编译并安装 ejabberd 版本 15.10。
在旧版本中,可以直接使用 erlc 命令编译模块,然后粘贴到 ejabberd 模块目录(或符号链接),这是开发模块的非常有效的方式。
但是在使用 logger.hrl 中的 INFO_MSG()/2 升级到较新的 ejabberd 版本后,ejabberd 无法加载模块。
按照https://www.ejabberd.im/ejabberd-13.10 和ejabberd how to compile new module 的建议,通过将模块文件放在ejabberd src 目录中并在ejabberd 目录中运行make 进行编译时,模块可以工作。
但这与直接使用 elrc 命令编译和运行模块的旧方法相比效率非常低。
后一种方法是正确的方法吗,如果是,为什么要更改,以及解释使用后一种方法进行编译的官方文档在哪里。
【问题讨论】:
-
什么是你不喜欢的方式“低效”?
-
使用 make 命令大约需要 9 秒。当使用涉及在单个模块文件上使用 erlc 命令的前一种方法时,它要快得多,大约 3 秒。