我试图在一个简单的erlang.mk项目中添加lager。我知道lager使用解析转换,因此您必须相应地设置编译标志;下面是这里的建议:
Lager calls failing during Common Test test runs
我的Makefile看起来如下:
PROJECT = hello_erlang_mk
DEPS = cowboy lager
# this must be first
include erlang.mk
# Compile flags
ERLC_COMPILE_OPTS= +'{parse_transform, lager_transform}'
# Append these settings
ERLC_OPTS += $(ERLC_COMPILE_OPTS)
TEST_ERLC_OPTS += $(ERLC_COMPILE_OPTS)这个版本构建得很好,但不知何故,lager似乎从来没有被包括在内:
Eshell V5.10.4 (abort with ^G)
(hello_erlang_mk@127.0.0.1)1> lager:info("~s is ~s!", [lager, cool]).
** exception error: undefined function lager:info/2有人对如何在erlang.mk项目中工作有任何建议吗?
我正在使用Erlang R16B03,Ubuntu14.04
谢谢。
发布于 2014-12-14 19:26:58
请原谅我。努布错误。应用:启动(拉格)。抱歉的。
发布于 2014-12-13 17:59:45
我相信这与erlang.mk无关。问题是--你试着打电话给lager: shell的信息。但实际上在大型模块中没有这样的功能。info只是一个用于解析转换的命令,它在编译过程中被展开到其他一些(更复杂)的构造中。
如果要检查应用程序是否包含lager,可以尝试从shell lager:status() (例如,它是lager模块中的“诚实”函数)。或lager:module_info()。
https://stackoverflow.com/questions/27456649
复制相似问题