微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在 iex 中运行 :observer.start 时出现 wxmac elixir 错误

如何解决尝试在 iex 中运行 :observer.start 时出现 wxmac elixir 错误

在 iex 中运行 :observer.start 后,我收到了以下消息。我尝试卸载并重新安装 Elixir 和 Homebrew,但无济于事。

objc[58977]: Class wxnsprogressIndicator is implemented in both /usr/local/Cellar/wxmac/3.0.5.1_1/lib/libwx_osx_cocoau_core-3.0.0.5.0.dylib (0x1f5e9fc0) and /usr/local/opt/wxmac/lib/libwx_osx_cocoau_core-3.0.dylib (0x1ef61fc0). One of the two will be used. Which one is undefined.

objc[58977]: Class wxNSTableDataSource is implemented in both /usr/local/Cellar/wxmac/3.0.5.1_1/lib/libwx_osx_cocoau_core-3.0.0.5.0.dylib (0x1f5ea038) and /usr/local/opt/wxmac/lib/libwx_osxzsh: segmentation fault

解决方法

我卸载了 wxmac:

brew uninstall wxmac

并重新安装以在本地构建 wxmac 而不是使用额外标志安装已经构建的二进制文件:

brew install --build-from-source wxmac

更新 asdf 的插件 erlang:

asdf plugin-update erlang

然后安装最新版本的Erlang:

asdf install erlang latest

现在当我尝试运行 :observer.start() 时它起作用了!

,

Observer 使用 WXwidgets 在您的平台上呈现窗口和控件。由于错误表明您有 2 个安装,不确定您如何在 mac 上处理此类错误,但我认为删除其中一个版本将解决该错误。

为了让您的生活更轻松,现在有一个新的选项可以在浏览器中运行名为 Phoenix Live Dashboard 的观察者,它不需要安装任何本地渲染器依赖项。

,

将额外标志传递给 brew install 以在本地构建 wxmac,而不是安装已构建的二进制文件。(bigsur wxmac 瓶子中似乎有一个错误)。 Elixir 依赖于 Erlang,而 Erlang 又依赖于 wxmac 来显示观察者窗口。所以在安装 erlang 或 elixir 之前先执行这个。

brew install --build-from-source wxmac
,

似乎所有 dylib 文件在 /usr/local/opt/wxmac/lib 中都是彼此完全相同的副本。这可能是如何为 wxmac 安装 dylib 的问题,但我现在没有耐心跟进。也许有人比我知道如何修复 wxmac brew 公式?

这有点麻烦,但我发现手动符号链接目录中的所有 dylib 为我解决了这个问题。例如,

cd /usr/local/opt/wxmac/lib
rm libwx_osx_cocoau_core-3.0.dylib
ln -s libwx_osx_cocoau_core-3.0.0.5.0.dylib libwx_osx_cocoau_core-3.0.dylib
# repeat for any/all libs that are a problem (I did all of them)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。