我想使用lager作为我的日志实用程序,并且我已按照以下方式对我的项目进行了组织:
proj\
|
|--lager\
| |--src\
| |--ebin\
| |--...
|
|--logserver\
| |--src\
| |--ebin\
| |--rebar.config
| |--...
|
|--rebar
|
但是,当我尝试编译logserver时,我总是遇到以下错误:
D:\ proj \ logserver> .. \ rebar compile
==> 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}},
...
谁能知道原因?谢谢!
这些是一些额外的信息:
钢筋的配置文件(D:\ proj \ logserver \ rebar.config):
... {erl_opts,[{parse_transform,lager_transform},debug_info,{d,'TEST'},{i,“include”},{src_dirs,[“src”]}]}。
{lib_dirs,[“.. \ lager \ ebin”]}。 ...
答案 0 :(得分:5)
如果你已经在你的deps中使用了lager,那么请确保先在rebar.config中移动较大的依赖项,这样它将首先编译..
答案 1 :(得分:3)
您是否在您的rebar.config
中添加 lager 作为依赖项?我猜 lager 不在路径中。
来自rebar wiki:
要在应用程序中使用lager,您需要将其定义为rebar dep 或者有其他方式将它包含在erlang的路径中。那你可以 将以下选项添加到erlang编译器标志:
{parse_transform, lager_transform}
您可以通过修改rebar.config
:
%% == 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"}}]}.
更多关于钢筋依赖管理器的信息: