从Git存储库签出时无法编译ejabberd

从Git存储库签出时无法编译ejabberd,git,erlang,ejabberd,rebar,Git,Erlang,Ejabberd,Rebar,我已经在intelliJ中构建了一个ejabberd模块,使用rebar进行编译,我得到了错误“undefined parse transform‘lager_transform’” rebar.config: {erl_opts, [nowarn_deprecated_function, {d, 'LAGER', true}, {d, 'NO_EXT_LIB'}, {i, ["c:/Program Files/ejabberd-15.11/bin"]}, {i, ["c:/Program Fi

我已经在intelliJ中构建了一个ejabberd模块,使用rebar进行编译,我得到了错误“undefined parse transform‘lager_transform’”

rebar.config:

{erl_opts, [nowarn_deprecated_function,
{d, 'LAGER', true},
{d, 'NO_EXT_LIB'},
{i, ["c:/Program Files/ejabberd-15.11/bin"]},
{i, ["c:/Program Files/ejabberd-15.11/lib/ejabberd-15.11/include"]}]}.
在检查此站点上的响应后,我将这些行添加到配置文件中:

{deps, [{lager, ".", {git, "https://github.com/basho/lager", {tag, "3.0.2"}}},
{p1_utils, ".", {git, "https://github.com/processone/p1_utils", {tag, "1.0.3"}}},
然后我继续尝试“rebar get deps”,但失败的原因是:

Pulling lager from {git,"https://github.com/basho/lager",{tag,"3.0.2"}}
ERROR: Rebar requires version {1,5} or higher of git to process {git,
"https://github.com/basho/lager",{tag,"3.0.2"}}
ERROR: 'get-deps' failed while processing C:/devxmpp/testMe: rebar_abort
因此,我继续下载Git2.7.x,但仍然出现相同的错误。它没有看到新版本

问候,,
威尔

这是这个问题的重复:


您需要使用configure和make编译ejabberd,如中所述。仅钢筋不足以为宏设置一些初始定义值,并将导致代码的某些部分被错误地定义/编译。

可能重复,但我没有看到该重复。那个是在我之前几个小时加上去的。为什么我像这样使用erlc时它会工作C:\Program Files\ejabberd-15.11\bin>erlc-v-DLAGER=true-DNO_EXT_LIB-I“C:/Program Files/ejabberd-15.11/LIB/ejabberd-15.11/include“-o C:\devxmpp\prototype\mod_http_offline\src:\devxmpp\prototype\mod_http_offline\src:\src\src\mod_http_offline\src\mod_http_为什么不使用configure和makefile?这就是它的用途。将您的模块与其他ejabberd源文件放在一起,并以文档化的方式构建ejabberd。我将在我的windows设备上尝试此操作,并让您知道。我甚至不确定您是否可以在windows上构建ejabberd,因为有本机C代码。您应该为Windows使用ProcessOne安装程序:。然后,如果您想从ejabberd contribs或本地代码安装contrib模块,您可以使用
ejabberdctl module_install
,如下所示:我正在尝试查找一些安装windows编译工具的要求……我现在对在unix上开发不感兴趣。我将使用FreeBSD进行服务器活动,但不用于开发……我仍在尝试。