我尝试克隆Jiffy以将其验证为JSON编码器。我不得不将priv文件夹复制到/ src,然后我可以cd src && erl > jiffy:encode...
很好。
所以我将包含priv文件夹的src复制到我的牛仔应用程序中。当我尝试访问它时就像我任何其他模块一样,我收到此错误
~/erlapp:.gmake run
gmake[1]: Entering directory '/Users/quantum/erlapp/deps/cowboy'
gmake[2]: Entering directory '/Users/quantum/erlapp/deps/cowlib'
gmake[2]: Leaving directory '/Users/quantum/erlapp/deps/cowlib'
gmake[2]: Entering directory '/Users/quantum/erlapp/deps/ranch'
gmake[2]: Leaving directory '/Users/quantum/erlapp/deps/ranch'
GEN rebar.config
gmake[1]: Leaving directory '/Users/quantum/erlapp/deps/cowboy'
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/Users/quantum/erlapp/ebin
/Users/quantum/erlapp/deps
/usr/local/Cellar/erlang/19.1/lib/erlang/lib
/Users/quantum/erlapp/apps
/Users/quantum/erlapp/_rel
===> Resolved erlapp_release-1
===> Including Erts from /usr/local/Cellar/erlang/19.1/lib/erlang
===> release successfully created!
===> tarball /Users/quantum/erlapp/_rel/erlapp_release/erlapp_release-1.tar.gz successfully created!
Exec: /Users/quantum/erlapp/_rel/erlapp_release/erts-8.1/bin/erlexec -boot /Users/quantum/erlapp/_rel/erlapp_release/releases/1/erlapp_release -mode embedded -boot_var ERTS_LIB_DIR /Users/quantum/erlapp/_rel/erlapp_release/erts-8.1/../lib -config /Users/quantum/erlapp/_rel/erlapp_release/releases/1/sys.config -args_file /Users/quantum/erlapp/_rel/erlapp_release/releases/1/vm.args -- console
Root: /Users/quantum/erlapp/_rel/erlapp_release
/Users/quantum/erlapp/_rel/erlapp_release
heart_beat_kill_pid = 78636
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
2017-01-01 23:36:36 crash_report
initial_call: {supervisor,kernel,['Argument__1']}
pid: <0.281.0>
registered_name: []
error_info: {exit,{on_load_function_failed,jiffy},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,352}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
ancestors: [kernel_sup,<0.256.0>]
messages: []
links: [<0.257.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 376
stack_size: 27
reductions: 117
2017-01-01 23:36:36 supervisor_report
supervisor: {local,kernel_sup}
errorContext: start_error
reason: {on_load_function_failed,jiffy}
offender: [{pid,undefined},{id,kernel_safe_sup},{mfargs,{supervisor,start_link,[{local,kernel_safe_sup},kernel,safe]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]
2017-01-01 23:36:37 crash_report
initial_call: {application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}
pid: <0.255.0>
registered_name: []
error_info: {exit,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,134}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
ancestors: [<0.254.0>]
messages: [{'EXIT',<0.256.0>,normal}]
links: [<0.254.0>,<0.253.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 376
stack_size: 27
reductions: 152
2017-01-01 23:36:37 std_info
application: kernel
exited: {{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}
type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}})
heart: Sun Jan 1 23:36:37 2017: Erlang is crashing .. (waiting for crash dump file)
heart: Sun Jan 1 23:36:37 2017: Would reboot. Terminating.
gmake: *** [erlang.mk:6448: run] Error 1
答案 0 :(得分:1)
发生这种情况的原因是你运行的是不同版本的erlang而不是你编译的版本。
如果你删除jiffy的编译版本并重新编译它应该可以在你编译的同一系统上运行:
rm -rf deps /
另外,请注意您需要拥有gcc,因此您可以编译C代码。