2015-11-08 5 views
0

Скомпилирована и установлена ​​версия ejabberd 15.10 на компьютере ubuntu 14.04 в каталоге/opt/ejabberd.Ejabberd правильный путь для компиляции настраиваемых модулей

В старой версии модуль может быть скомпилирован непосредственно с помощью команды erlc, а затем вставлен в модуль ejabberd (или символически связан), что было очень эффективным способом разработки модулей.

Но после обновления до новой версии ejabberd при использовании INFO_MSG()/2 из logger.hrl ejabberd не может загрузить модуль.

При компиляции, помещая файл модуля в каталог ejabberd src и запуская make в каталоге ejabberd, как предложено в https://www.ejabberd.im/ejabberd-13.10 и ejabberd how to compile new module, модуль работает.

Но это очень неэффективно по сравнению с более старым методом компиляции и запуска модулей с помощью команды elrc.

Подходит ли последний подход к правильному методу, если да, то почему он был изменен и где находятся официальные документы, которые объясняют компиляцию с использованием последнего подхода.

+0

Что такое «неэффективно» о том, как вам не нравится? –

+0

Требуется около 9 секунд с помощью команды ** make **. При использовании прежнего подхода, который включает в себя использование команды ** erlc ** в файле с одним модулем, она намного быстрее, примерно через 3 секунды. –

ответ

0

вы можете скомпилировать модуль ejabberd как этот

erlc -I /lib/ejabberd/include -o /lib/ejabberd/ebin /home/sunil/Documents/ejabberd_custom_modules/mod_profile.erl 

В этом примере /Библиотека/ejabberd/включают заголовочных файлов (.hrl) путь,/Библиотека/ejabberd/Эбин * является бинарным путь к файлу ejabberd и '/home/sunil/Documents/ejabberd_custom_modules/mod_profile.erl - путь к исходному файлу.

0

Правильный способ скомпилировать модуль пользовательского ejabberd (предложенный процесс-один) является: -

  • положить модуль в ejabberd/папку Src.
  • приходят в каталог ejabberd в терминал и запустите команду $ sudo make

он покажет вам, что ваш модуль компилируется. Вы можете проверить каталог ebin для .beam-файла, который является результатом вашей компиляции.

Теперь, чтобы запустить ваш модуль

$ sudo make install 

Добавить модуль в конфигурационный файл в /etc/ejabberd/ejabberd.yml перезагрузить ejabberd и пользовательский модуль будет работать.

Другим способом компиляции с Erlang оболочкой является: - начать Erlang, чтобы загрузить все включаемые файлы, необходимые для модуля ejabberd из каталога Эбина.

Вы также можете указать несколько путей, разделенных пробелом, если вы включаете файлы из нескольких мест. Как

> erl -pa <path1/ebin> <path2/ebin> 

Это начнется с оболочки erlang.Следующие вещи, которые нужно сделать, это: - сделать

> cd("<path to your module.erl file>").

скомпилировать ваш модуль

> c(your module).

Ваш файл module.beam будет генерироваться в результате вашей компиляции.

Смежные вопросы