安装wxWidgets后运行Elixir桌面示例报错找不到wxWebView如何解决
问题根因
你的报错核心是Erlang的wx组件未找到wxWebView相关实现,主要由两个问题导致:
- Ubuntu 20.04的webkitgtk包名不是
webkitgtk,你使用了错误的包名检索安装 - 你手动编译的wxWidgets 3.1.5在缺少webview依赖的情况下完成了编译,生成的库不包含webview模块,同时asdf安装的Erlang也没有正确绑定带webview支持的wx库
修复步骤
第一步:安装正确的webkitgtk依赖包
Ubuntu 20.04对应的webkit2gtk开发包名称为libwebkit2gtk-4.0-dev,直接执行以下命令安装:
sudo apt install libwebkit2gtk-4.0-dev
第二步:重新编译wxWidgets 3.1.5
你之前编译wxWidgets时因为缺少webview依赖,编译产物没有webview模块,需要清理后重新编译:
cd ~/projects/wxWidgets make clean ./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 # 执行完configure后确认输出中WebView一项显示为yes再继续后续操作 make -j4 sudo make install
第三步:重新编译asdf版本的Erlang
asdf安装的Erlang默认会自动检测系统的wx库,你之前安装Erlang时没有可用的带webview支持的wx库,需要重新编译Erlang:
# 先配置环境变量让Erlang检测到你手动安装的wxWidgets export PATH=/usr/local/wxWidgets/bin:$PATH export LD_LIBRARY_PATH=/usr/local/wxWidgets/lib:$LD_LIBRARY_PATH # 重新安装Erlang 24.0 asdf uninstall erlang 24.0 asdf install erlang 24.0
第四步:重新编译项目依赖
进入你的desktop-example-app项目目录,清理已有编译产物后重新编译:
mix deps.clean --all mix deps.get mix deps.compile
完成后再执行./run即可正常启动应用。
内容的提问来源于stack exchange,提问作者Flame_Phoenix
相关产品推荐
相关产品推荐

