Erlang 在使用lager-log框架时,始终存在lager_变换的未定义错误
我想使用lager作为我的日志工具,我的项目组织如下:Erlang 在使用lager-log框架时,始终存在lager_变换的未定义错误,erlang,rebar,Erlang,Rebar,我想使用lager作为我的日志工具,我的项目组织如下: proj\ | |--lager\ | |--src\ | |--ebin\ | |--... | |--logserver\ | |--src\ | |--ebin\ | |--rebar.config | |--... | |--rebar | 但是,当我尝试编译logserver时,总是出现以下错误: D:\proj\logs
proj\
|
|--lager\
| |--src\
| |--ebin\
| |--...
|
|--logserver\
| |--src\
| |--ebin\
| |--rebar.config
| |--...
|
|--rebar
|
但是,当我尝试编译logserver时,总是出现以下错误:
D:\proj\logserver>。\r\n编译
==> logserver (compile)
src/logserver_app.erl:none: error in parse transform 'lager_transform': {undef,
[{lager_transform,
parse_transform,
[[{attribute,1,file,
{"src/logserver_app.erl",1}},
...
有人知道原因吗?谢谢
以下是一些附加信息:
- 我使用的是Windows操作系统和最新版本的Erlang和rebar 还有啤酒
- lager本身已经完成了编译。我们可以找到D:\proj\logserver>dir..\lager\ebin\lager\u transform.beam(这将 成功)
- 钢筋的配置文件(D:\proj\logserver\rebar.config): 。。。 {erl_opts,[{parse_transform,lager_transform},debug_info,{d,'TEST'},{i,“include”},{src_dirs,[“src”]}]} {lib_dirs,[“.\lager\ebin”]}。
rebar.config
中添加了啤酒作为依赖项?我想喝啤酒是行不通的
从:
要在应用程序中使用lager,您需要将其定义为钢筋dep
或者以其他方式将其包含在erlang的路径中。那么你可以
将以下选项添加到erlang编译器标志:
{parse_transform, lager_transform}
通过编辑rebar.config
,可以将“lager”添加为依赖项:
%% == Dependencies ==
%% Where to put any downloaded dependencies. Default is "deps"
{deps_dir, "deps"}.
%% What dependencies we have, dependencies can be of 3 forms, an application
%% name as an atom, eg. mochiweb, a name and a version (from the .app file), or
%% an application name, a version and the SCM details on how to fetch it (SCM
%% type, location and revision). Rebar currently supports git, hg, bzr and svn.
{deps, [application_name,
{application_name, "1.0.*"},
{application_name, "1.0.*",
{git, "git://github.com/basho/rebar.git", {branch, "master"}}}]}.
在您的情况下,应该是这样的:
{deps, [{lager, ".*", {git, "git://github.com/basho/lager.git", "HEAD"}}]}.
有关钢筋依赖关系管理器的详细信息,请参见此处:
如果您的deps中已经有了lager,那么请确保首先在
rebar.config
中移动lager依赖项,这样它将首先编译。像这样:
{deps[
啤酒,
..
]}.
谢谢。但是我的啤酒在我的本地目录里。那么,我如何将其添加为依赖项呢?刚刚添加了lager的钢筋配置。我也遇到了类似的问题。我试过上述建议,但没有成功。看到这一点:我对rebar3完全不懂,但对我来说模糊的部分是根据rebar3捕捉“erlang编译器标志”的位置。结果是我不得不在rebar.config中更改一行,从这个{erl\u opts,[debug\u info]}.
到这个{erl\u opts,[debug\u info,{parse\u transform,lager\u transform}.