首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用大型日志框架时,总是得到lager_transform的undef错误。

在使用大型日志框架时,总是得到lager_transform的undef错误。
EN

Stack Overflow用户
提问于 2012-09-08 07:30:58
回答 2查看 4.1K关注 0票数 5

我想使用lager作为我的日志实用程序,我已经组织了我的proj如下:

代码语言:javascript
复制
proj\
  |
  |--lager\
  |    |--src\
  |    |--ebin\
  |    |--...
  |     
  |--logserver\
  |    |--src\
  |    |--ebin\
  |    |--rebar.config
  |    |--...
  |
  |--rebar
  |

但是,当我试图编译日志服务器时,总是会出现以下错误:

D:\proj\logserver>..\rebar编译

代码语言:javascript
复制
==> 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和钢筋和拉格。
  • 拉格本身已经被汇编好了。我们可以找到D:\proj\logserver>dir ..\lager\ebin\lager_transform.beam (这将成功)
  • 钢筋的配置文件(D:\proj\logserver\rebar.config): . {erl_opts,[{parse_transform,lager_transform},debug_info,{d,'TEST'},{i,“包括”},{src_dirs,"src"}]} }。 {lib_dirs,"..\lager\ebin"}..。
EN

回答 2

Stack Overflow用户

发布于 2013-07-05 08:38:23

如果您的deps中已经有了lager,那么请确保在rebar.config中首先移动较大的依赖项,这样它就会首先编译。就像这样:

代码语言:javascript
复制
{deps,[
  lager,
  ..
]}.
票数 6
EN

Stack Overflow用户

发布于 2012-09-10 10:32:34

您在rebar.config中添加了lager作为依赖项吗?我想拉格不是在路上。

来自钢筋维基

要在应用程序中使用lager,您需要将其定义为钢筋dep,或者有其他方法将其包含在erlang的路径中。然后,可以将以下选项添加到erlang编译器标志: {parse_transform,lager_transform}

通过编辑rebar.config,可以将“lager”作为依赖项添加

代码语言:javascript
复制
%% == 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"}}}]}.

在你的例子中,应该是这样的:

代码语言:javascript
复制
{deps, [{lager, ".*", {git, "git://github.com/basho/lager.git", "HEAD"}}]}.

有关钢筋依赖关系管理器的更多信息如下:

https://github.com/basho/rebar/wiki/Dependency-management

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12328921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档