【问题标题】:Including lager in an erlang.mk project在 erlang.mk 项目中包含啤酒
【发布时间】:2014-12-15 03:26:58
【问题描述】:

我正在尝试将啤酒添加到一个简单的 erlang.mk 项目中。我了解啤酒使用解析转换,因此您必须相应地设置编译标志;所以请听从这里的建议:

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]

谢谢。

【问题讨论】:

  • 我不熟悉 erlang.mk,但我认为使用项目级编译标志指定解析转换是不好的做法。如果您将使用模块级属性会更干净:-compile({parse_transform, lager_transform}).

标签: erlang lager


【解决方案1】:

我相信与 erlang.mk 无关。问题是——你尝试从 shell 调用 lager:info 。但实际上在 lager 模块中并没有这样的功能。 lager:info 只是一个用于解析转换的命令,它在编译期间展开为其他一些(更复杂的)结构。

如果你想检查你的应用程序是否包含 lager,你可以尝试从 shell lager:status() 例如(这是 lager 模块中的 'honest' 函数)。或者更大:module_info()。

【讨论】:

    【解决方案2】:

    原谅我。菜鸟错误。应用程序:开始(啤酒)。对不起。

    【讨论】:

      猜你喜欢
      • 2014-08-03
      • 1970-01-01
      • 2016-10-06
      • 2014-12-09
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多