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

私のモジュールをテストする私はいつもfalseになります

 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 に答える