ubuntu - wxWidgets安装后找不到wxWebView

标签 ubuntu elixir wxwidgets phoenix-live-view

背景
我正在尝试运行演示应用程序 desktop-example-app在 2021 年 2 月的 Elixir 柏林聚会上展示:

  • https://www.youtube.com/watch?v=aFpBHQ0YEw4&t=2016s

  • 我已按照 Ubuntu 安装指南中的所有必要设置步骤进行操作:
  • https://hexdocs.pm/desktop/installation.html
  • sudo apt install inotify-tools libtool automake libgmp-dev make libwxgtk-webview3.0-gtk3-dev libssl-dev libncurses5-dev curl git
    
    sudo apt install libjpeg-dev libpng-dev libtiff-dev zlib1g-dev libncurses5-dev libssh-dev unixodbc-dev libgmp3-dev libwxbase3.0-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libsctp-dev lksctp-tools build-essential libgtk-3-dev libnotify-dev libsecret-1-dev catch
    
    mkdir ~/projects && cd ~/projects
    git clone https://github.com/wxWidgets/wxWidgets.git
    cd wxWidgets; 
    git checkout v3.1.5
    ./configure --prefix=/usr/local/wxWidgets --enable-clipboard --enable-controls \
          --enable-dataviewctrl --enable-display \
          --enable-dnd --enable-graphics_ctx \
          --enable-std_string --enable-svg \
          --enable-unicode --enable-webview \
          --with-expat --with-libjpeg \
          --with-libpng --with-libtiff \
          --with-opengl --with-zlib \
          --disable-precomp-headers --disable-monolithic
    
    make -j4
    
    我在项目中通过 asdf 安装了其余的依赖项:
    erlang 24.0
    elixir 1.12.2-otp-24
    sqlite 3.36.0
    nodejs 12.16.1
    
    问题
    据我所知,安装没有任何问题。但是,当我执行脚本 ./run启动应用程序,我收到以下错误:
    error] Process #PID<0.383.0> terminating
    ** (exit) {:bad_return, {{TodoApp, :start, [:normal, []]}, {:EXIT, {{:badmatch, {:error, {{:EXIT, {{:badmatch, {:error, {{:undefined_function, {:wxWebView, :new, 0}}, [{:wxe_util, :rec, 1, [file: 'wxe_util.erl', line: 110]}, {Desktop.Fallback, :webview_new, 1, [file: 'lib/desktop/fallback.ex', line: 88]}, {Desktop.Window, :init, 1, [file: 'lib/desktop/window.ex', line: 175]}, {:wx_object, :init_it, 6, [file: 'wx_object.erl', line: 404]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, [{Desktop.Window, :start_link, 1, [file: 'lib/desktop/window.ex', line: 103]}, {:supervisor, :do_start_child_i, 3, [file: 'supervisor.erl', line: 414]}, {:supervisor, :do_start_child, 2, [file: 'supervisor.erl', line: 400]}, {:supervisor, :handle_start_child, 2, [file: 'supervisor.erl', line: 706]}, {:supervisor, :handle_call, 3, [file: 'supervisor.erl', line: 455]}, {:gen_server, :try_handle_call, 4, [file: 'gen_server.erl', line: 721]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 750]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}, {:child, :undefined, TodoWindow, {Desktop.Window, :start_link, [[app: :todo_app, id: TodoWindow, title: "TodoApp", size: {600, 500}, icon: "icon.png", menubar: TodoApp.MenuBar, icon_menu: TodoApp.Menu, url: &TodoWeb.Endpoint.url/0, app: :todo_app, id: TodoWindow]]}, :permanent, false, 5000, :worker, [Desktop.Window]}}}}, [{TodoApp, :start, 2, [file: 'lib/todo_app.ex', line: 24]}, {:application_master, :start_it_old, 4, [file: 'application_master.erl', line: 293]}]}}}}
        (kernel 8.0) application_master.erl:142: :application_master.init/4
        (stdlib 3.15) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
    Initial Call: :application_master.init/4
    Ancestors: [#PID<0.382.0>]
    Message Queue Length: 1
    Messages: [{:EXIT, #PID<0.384.0>, :normal}]
    Links: [#PID<0.382.0>, #PID<0.44.0>]
    Dictionary: []
    Trapping Exits: true
    Status: :running
    Heap Size: 1598
    Stack Size: 29
    Reductions: 252
    ** (Mix) Could not start application todo_app: exited in: TodoApp.start(:normal, [])
        ** (EXIT) an exception was raised:
            ** (MatchError) no match of right hand side value: {:error, {{:EXIT, {{:badmatch, {:error, {{:undefined_function, {:wxWebView, :new, 0}}, [{:wxe_util, :rec, 1, [file: 'wxe_util.erl', line: 110]}, {Desktop.Fallback, :webview_new, 1, [file: 'lib/desktop/fallback.ex', line: 88]}, {Desktop.Window, :init, 1, [file: 'lib/desktop/window.ex', line: 175]}, {:wx_object, :init_it, 6, [file: 'wx_object.erl', line: 404]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, [{Desktop.Window, :start_link, 1, [file: 'lib/desktop/window.ex', line: 103]}, {:supervisor, :do_start_child_i, 3, [file: 'supervisor.erl', line: 414]}, {:supervisor, :do_start_child, 2, [file: 'supervisor.erl', line: 400]}, {:supervisor, :handle_start_child, 2, [file: 'supervisor.erl', line: 706]}, {:supervisor, :handle_call, 3, [file: 'supervisor.erl', line: 455]}, {:gen_server, :try_handle_call, 4, [file: 'gen_server.erl', line: 721]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 750]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}, {:child, :undefined, TodoWindow, {Desktop.Window, :start_link, [[app: :todo_app, id: TodoWindow, title: "TodoApp", size: {600, 500}, icon: "icon.png", menubar: TodoApp.MenuBar, icon_menu: TodoApp.Menu, url: &TodoWeb.Endpoint.url/0, app: :todo_app, id: TodoWindow]]}, :permanent, false, 5000, :worker, [Desktop.Window]}}}
                (todo_app 0.0.1) lib/todo_app.ex:24: TodoApp.start/2
                (kernel 8.0) application_master.erl:293: :application_master.start_it_old/4
    
    我已经安装了 wxWidgets,但它似乎找不到它。这是我的操作系统版本:
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.3 LTS
    Release:        20.04
    Codename:       focal
    (base) pedro:~/Workplace
    
    我该如何解决这个问题?
    编辑
    我试着检查我是否有 webkitgtk安装但显然我没有。即使它似乎存在于 packages.ubuntu.com 中,我也找不到该包。 :
    (base):~$ dpkg -l webkitgtk
    dpkg-query: no packages found matching webkitgtk
    
    (base):~$ sudo apt-get install webkitgtk 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package webkitgtk
    
    
    这令人困惑,因为显然包的名称应该是正确的:
    https://packages.ubuntu.com/search?searchon=sourcenames&keywords=webkitgtk

    最佳答案

    我根据页面安装了所有东西,我什至删除了我的asdf erlang 安装就可以了。结果也好不到哪里去。我还从源代码安装和编译了 wxWidgets,但什么也没有。
    最终拯救我的一件事是这个讨论:
    https://github.com/asdf-vm/asdf-erlang/issues/203
    他们建议以下命令:

    asdf plugin-update --all
    asdf install erlang 24.0.1
    
    确实,安装版本 24.0.1使用 asdf 为我解决了这个问题。

    关于ubuntu - wxWidgets安装后找不到wxWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68955706/

    相关文章:

    azure - 如何使用Azure上/dev/sdb1下的空磁盘空间?

    elixir - 返回 map 还是转换为 map ?字数统计 Elixir

    c++ - LNK2019/LNK2001错误: Why would a library provide a . cpp文件有未实现的功能? (它们如何实现?)

    linux - Mercurial 时间设置

    linux - 更改 Linux 上 VIM 插入标记的外观?

    linux - Ubuntu - 升级到 13.10 后没有音频

    if-statement - 为什么 if(not nil) 给我一个 ArgumentError?

    elixir - Phoenix Server 运行时如何在 Controller 中记录某些内容?

    c++ - wxWidgets - 通过 DLL 添加项目到 sizer

    c++ - Textfield - 什么是 wxTextCtrl NameStr?