我的relx配置
{release,{socket,"0.1.0"}}.
{extend_start_script,true}.
我的.app文件
{application,socket,
[{description,[]},
{vsn,"1"},
{registered,[]},
{applications,[kernel,stdlib,cowboy]},
{mod,{socket,[]}},
{env,[{http_port,8080}]},
{modules,[socket_app,socket_socket_handler,socket_sup]}]}.
使用rebar编译应用程序后,我从终端运行relx,以下是我得到的输出
===>启动relx构建过程......
===>从目录中解析OTP应用程序:
/home/akshat/Desktop/socket/ebin /home/akshat/Desktop/socket/deps /usr/lib/erlang/lib
===>缺少梁文件hipe<<“/ usr / lib / erlang / lib / hipe-3.10.2 / ebin / hipe.beam”>>
===>从目录中解析可用的OTP版本:
/home/akshat/Desktop/socket/ebin /home/akshat/Desktop/socket/deps /usr/lib/erlang/lib
系统中未指定任何版本!
我不明白来自relx的这条消息。它不会为我创建发布吗?
如何安装hipe?
在重新安装erlang后,我不再收到hipe错误消息。但是螺纹钢仍然说系统没有指定任何版本。
答案 0 :(得分:2)
有这个工作。重新安装erlang摆脱了第一个问题,即hipe错误消息。
表示relx的含义系统未指定任何版本
是我没有指定要发布的应用程序。我的理解是,因为我只有一个应用程序,所以我不需要明确指定它。所以我的relx.config文件现在看起来像
{release,{socket,"0.1.0"},[socket]}.
{extend_start_script,true}.
这有效,我现在在我的_rel文件夹中有一个版本。
答案 1 :(得分:2)
在进入应用程序目录并运行rebar3编译,rebar3发行命令之前,我遇到了完全相同的问题。效果很好。
$ > ls
enter code here
chatx rebar3
$ > cd chatx/
$ > rebar3 compile
===> Verifying dependencies...
===> Compiling chatx
$ > rebar3 release
===> Verifying dependencies...
===> Compiling chatx
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/Users/studio/erlang/chatx/_build/default/lib
/Users/studio/erlang/chatx/apps
/Users/studio/kerl/20.2/lib
===> Resolved chatx-0.1.0
===> Dev mode enabled, release will be symlinked
===> release successfully created!