我目前正在Erlang开发一个服务器,使用Cowboy作为web服务器框架。在启动时,我需要能够进行服务器端HTTP调用以从其他web服务器获取文件,因此我包含了一个Makefile依赖项
ibrowse
ibrowse文档没有特别提到作为牛仔依赖项添加的内容,而是提到了erlang。mk文档表明我只需要添加单行
DEPS = ibrowse
然而,当我添加这一行时,牛仔在启动时崩溃了
=INFO REPORT==== 15-Feb-2018::14:51:13 ===
application: geo_server
exited: {bad_return,
{{geo_server_app,start,[normal,[]]},
{'EXIT',
{undef,
[{cowboy_router,compile,
[[{'_',
[{"/",default_handler,[]},
{"/client_info",client_info_handler,[]},
{"/search",request_handler,[]}]}]],
[]},
{geo_server_app,start,2,
[{file,"src/geo_server_app.erl"},{line,8}]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},
{line,273}]}]}}}}
type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,geo_server,{bad_return,{{geo_server_app,start,[normal,[]]},{'EXIT',{undef,[{cowboy_router,compile,[[{'_',[{\"/\",default_handler,[]},{\"/client_info\",client_info_handler,[]},{\"/search\",request_handler,[]}]}]],[]},{geo_server_app,start,2,[{file,\"src/geo_server_app.erl\"},{line,8}]},{application_master,start_it_old,4,[{file,\"application_master.erl\"},{line,273}]}]}}}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,geo_server,{bad_return,{{geo_server_app,start,[normal,[]]},{'EXIT',{undef,[{cowboy_router,compile,[[{'_',[{"/",default_handle
heart: Thu Feb 15 14:51:14 2018: Erlang is crashing .. (waiting for crash dump file)
heart: Thu Feb 15 14:51:14 2018: Would reboot. Terminating.
gmake: *** [erlang.mk:6639: run] Error 1
摆脱这种依赖,牛仔就可以好好开始了。
PROJECT = geo_server
PROJECT_DESCRIPTION = Geographic information server
PROJECT_VERSION = 0.1.0
DEPS = cowboy
dep_cowboy_commit = 2.2.2
DEP_PLUGINS = cowboy
include erlang.mk
DEPS = ibrowse
我是否把
DEPS = ibrowse
行之前或之后
include elrang.mk
.
在经过更多的磨蹭之后,这似乎是牛仔的缓存问题
make run
工艺工程。
添加ibrowse似乎需要两次调用
进行跑步
. 如果我的代码崩溃了,在看到修改后的代码运行之前,我必须再次添加并删除ibrowse。
谢谢
克里斯·W