我在我的src目录中有jiffy但是当我运行时我的Cowboy服务器崩溃了

时间:2017-01-02 04:37:03

标签: json erlang cowboy

我尝试克隆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

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是你运行的是不同版本的erlang而不是你编译的版本。

如果你删除jiffy的编译版本并重新编译它应该可以在你编译的同一系统上运行:

rm -rf deps /

另外,请注意您需要拥有gcc,因此您可以编译C代码。