Erlang:如何在rebar3发行版中包含wx库

91zkwejq  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(160)

如何在我的rebar 3发行版中包含wx库,这些库是随erlang(/lib/erlang/lib/wx-2.1.2)一起提供的?我不知道在哪里复制这些文件,以及如何在rebar.config文件中声明它们。
我在我的应用程序中使用以下代码:

-module(main_window).
-include_lib("wx/include/wx.hrl").
-include("state_records.hrl").
-export([start/0]).

start() ->
    Wx = wx:new(),
    State = wx:batch(fun() -> create_window(Wx) end),
    wxWindow:show(State#state.frame),
    loop(State),
    wx:destroy(),
    ok.

...

通过运行rebar3 compile来启动我的应用,然后rebar3 shell就可以工作了。但是当我使用rebar3 release时,我得到了以下输出:

===> There are missing function calls in the release.
===> Make sure all applications needed at runtime are included in the release.
===> main_window:create_window/1 calls undefined function wxBoxSizer:new/1
===> main_window:create_window/1 calls undefined function wxFrame:connect/2
===> main_window:create_window/1 calls undefined function wxFrame:createStatusBar/2
===> main_window:create_window/1 calls undefined function wxFrame:new/4
===> main_window:create_window/1 calls undefined function wxFrame:setIcon/2
===> main_window:create_window/1 calls undefined function wxFrame:setMenuBar/2
===> main_window:create_window/1 calls undefined function wxFrame:setStatusText/3
===> main_window:create_window/1 calls undefined function wxIcon:new/2
...
zphenhs4

zphenhs41#

根据文档x1e0 f1 a,relx将添加到发布版本中的应用程序应作为列表提及,请参见。
运行rebar 3发布版本将构建该发布版本,并提供一个脚本来启动_build//rel//bin/下的节点。
<release_name>必须是一个原子,对于要包含在发布中的应用程序列表中的每个都是相同的。

{relx, [{release, {<release name>, <vsn>},
     [<app>]},

    {dev_mode, true},
    {include_erts, false},

    {extended_start_script, true}]}.

相关问题