0

我已经使用编译了我的 Erlang 模块

rebar compile

在 rebar.config 中使用以下选项

{erl_opts, [native, {hipe, [verbose]}, warnings_as_errors, debug_info]}.
{eunit_compile_opts, [native, {hipe, [verbose]}, warnings_as_errors, debug_info]}.

我看到代码确实被编译为本机,因为我在编译期间看到 Hipe 消息,并且 .beam 文件大小也大于非本机编译。

但是,当我跑步时

rebar eunit

哪个测试我的模块我总是得到错误的

 code:is_module_native(?MODULE)

在我的测试模块中。

为什么 rebar 不将我的 eunit 测试作为本机代码运行?

我还在 reltool.config 文件中添加了这一行,

 {app, hipe, [{incl_cond, include}]},

钢筋 2.1.0-pre 17 20140421_192321 git 2.1.0-pre-166-ged88055

4

1 回答 1

1

当您使用定义的编译选项运行“rebar eunit”时,您的代码将被重新编译

  • {erl_opts, [native, {hipe, [verbose]}, warnings_as_errors, debug_info]}.

并由定义的编译选项修改

  • {eunit_compile_opts, [???]}.

你检查了这些选项吗?

于 2015-05-12T16:06:24.470 回答