我试图将lager添加到一个简单的erlang.mk项目中。我理解lager使用parse转换,所以你必须相应地设置编译标志;所以按照这里的建议:
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)
该版本构建良好,但不知何故似乎永远不包括在内:
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项目中使用lager工作的任何指示?
[我正在使用Erlang R16B03,Ubuntu 14.04]
感谢。
答案 0 :(得分:3)
我相信与erlang.mk无关。问题是 - 你尝试从shell调用lager:info。但实际上在更大的模块中没有这样的功能。 lager:info只是一个解析变换的命令,它在编译期间展开到其他一些(更复杂的)构造。
如果你想检查你的应用程序是否包含lager,你可以试试shell lager:status()例如(在lager模块中是“诚实的”功能)。或更长:module_info()。
答案 1 :(得分:0)
原谅我。 Noob错误。应用程序:启动(啤酒)。遗憾。