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
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #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!