Rebar eunit运行非本机(非Hipe)代码

时间:2015-05-12 03:14:29

标签: erlang rebar erl eunit hipe

我已经使用

编译了我的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]}.

我看到代码确实编译为native,因为我在编译期间看到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

1 个答案:

答案 0 :(得分:1)

使用

定义的编译选项运行“rebar eunit”时,将重新编译代码
  • {erl_opts, [native, {hipe, [verbose]}, warnings_as_errors, debug_info]}.

并由

定义的编译选项修改
  • {eunit_compile_opts, [???]}.

您检查了这些选项吗?