Fl4m3Ph03n1x
Background
I am trying to run the demo app desktop-example-app showed in Elixir Berlin meetup February 2021:
I have followed all the necessary setup steps from the installation guide for Ubuntu:
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
And I have the rest of the dependencies installed via asdf in the project:
erlang 24.0
elixir 1.12.2-otp-24
sqlite 3.36.0
nodejs 12.16.1
Problem
The installation went without any issues as far as I can tell. However, when I execute the script ./run to launch the application, I get the following error:
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
I have wxWidgets installed, but it looks like it can’t find it. This is my OS version:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
(base) pedro:~/Workplace
How can I fix the issue?
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
Hey guys,
I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly
Do you guys have any suggestions what is the best prac...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
I’ve followed the Phoenix LiveView file upload code here Uploads — Phoenix LiveView v1.0.0-rc.7 and so far everything works just fine wit...
New
Hello,
I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter).
The diffic...
New
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #ai
- #phoenix_html
- #iex
- #elixirconf-us
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 5- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
axelson
Did you compile Erlang with the local version of wxWidgets? Instructions are on the page in the “Install Erlang OTP/24” section (although the header of that section should probably mention wxWidgets to make it more clear that you need to follow it even if you have Erlang/OTP 24 already installed.
Fl4m3Ph03n1x
I installed erlang with asdf like I normally do.
Perhaps this is not sufficient ?
axelson
It is not. With that command the system version of wx will be used (which doesn’t support the web browser window, which results in the error you received). You might be able to get away with not including the LD_LIBRARY_PATH variable. I don’t remember if I set that when I was playing with the library. Also I’m fairly sure that the asdf-erlang plugin will read KERL_CONFIGURE_OPTIONS but you may need to double-check. Good luck! I’m pretty excited about this library as well
Fl4m3Ph03n1x
I installed everything according to the page. The result wasn’t any better. I also installed and compiled wxWidgets from source and yet nothing.
The one thing that ended up saving me was this discussion:
https://github.com/asdf-vm/asdf-erlang/issues/203
Where they suggest the following commands:
Indeed, installing version
24.0.1with asdf fixed the issue for me.dominicletz
Great you could solve this! Hopefully, this is going to get easier with forthcoming OTP releases. If you have any further issues/feedback feel free to @mention me directly in a post or send a message on the Elixir slack.
Cheers!