如何解决尝试在 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 举报,一经查实,本站将立刻删除。