Erlang 使用 Rebar 部署,hipe 错误 {"init terminating in do_boot", {'cannot load' ,hipe,get_file}}

标签 erlang rebar hipe

Erlang 非常新,任何尝试使用 rebar 运行简单的 hello world 程序都会导致以下错误:

./rel/mysample/bin/mysample console
Exec: /home/jwong/erlang_examples/mysample/rel/mysample/erts-5.9.2/bin/erlexec -boot   /home/jwong/erlang_examples/mysample/rel/mysample/releases/1/mysample -mode embedded -config   /home/jwong/erlang_examples/mysample/rel/mysample/releases/1/sys.config -args_file    /home/jwong/erlang_examples/mysample/rel/mysample/releases/1/vm.args -- console
Root: /home/jwong/erlang_examples/mysample/rel/mysample
{"init terminating in do_boot",{'cannot load',hipe,get_file}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

erl -init_debug
{progress,preloaded}
{progress,kernel_load_completed}
{progress,modules_loaded}
{start,heart}
{start,error_logger}
{start,application_controller}
{progress,init_kernel_started}
{apply,{application,load,[{application,stdlib,[{description,"ERTS  CXC 138 10"},{vsn,"1.18.2"},{id,[]},{modules,[array,base64,beam_lib,binary,c,calendar,dets,dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph,digraph_utils,edlin,edlin_expand,epp,eval_bits,erl_bits,erl_compile,erl_eval,erl_expand_records,erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,erl_scan,erl_tar,error_logger_file_h,error_logger_tty_h,escript,ets,file_sorter,filelib,filename,gb_trees,gb_sets,gen,gen_event,gen_fsm,gen_server,io,io_lib,io_lib_format,io_lib_fread,io_lib_pretty,lib,lists,log_mf_h,math,ms_transform,orddict,ordsets,otp_internal,pg,pool,proc_lib,proplists,qlc,qlc_pt,queue,random,re,sets,shell,shell_default,slave,sofs,string,supervisor,supervisor_bridge,sys,timer,unicode,win32reg,zip]},{registered,[timer_server,rsh_starter,take_over_monitor,pool_master,dets]},{applications,[kernel]},{included_applications,[]},{env,[]},{maxT,infinity},{maxP,infinity}]}]}}
{progress,applications_loaded}
{apply,{application,start_boot,[kernel,permanent]}}
Erlang R15B02 (erts-5.9.2) [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false]

{apply,{application,start_boot,[stdlib,permanent]}}
{apply,{c,erlangrc,[]}}
{progress,started}
Eshell V5.9.2  (abort with ^G)

我正在运行 ubuntu 12.04,使用使用没有标志选项的 kerl 编译的 erlang。我对生成的 reltool.config 所做的唯一修改是向 lib_dirs 添加“../../”。

它看起来非常相似 [this question][1] 但在 reltool.config 中添加“hipe”会导致错误:
{'EXIT',{{badmatch,{error,"Illegal option: [{app,mysample,hipe,[{mod_cond,app},{incl_cond,include}]}]"}}

这是怎么回事,我该如何解决?

最佳答案

结果证明这是 the linked question 的完全复制品

问题是我在 reltool.config 中的错误区域添加了该行。

钢筋生成:

app, mysample, [{mod_cond, app}, {incl_cond, include}]}

自动在配置中。与其用“hipe”编辑该行,或将其添加到文件底部,正确的配置是将其添加到 sys 数组中,在生成的应用程序下方,使其看起来像:
{app, mysample, [{mod_cond, app}, {incl_cond, include}]},
{app, hipe, [{incl_cond, exclude}]}

关于Erlang 使用 Rebar 部署,hipe 错误 {"init terminating in do_boot", {'cannot load' ,hipe,get_file}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313878/

相关文章:

shell - 你如何处理令人分心的 shell tty 输出?

Erlang:Mnesia 在使用 rebar 发布时无法创建模式

build - Erlang 的标准构建工具是什么?

testing - 使用通用测试的模块的 Erlang 测试(非导出/私有(private))功能

erlang - 使用 "+native"编译的约束/限制是什么?

Erlang编译: mixed of "HiPE object code" and "opcode"?

linux - 使操作系统为 Erlang 提供更多内存访问

erlang - 如何在 ERLANG 上调用具有两个以上参数的打印函数?

erlang - Erlang 在电信领域的应用

Erlang OTP 版本可以用 HiPE 编译吗?