Ошибка эликсира wxmac при попытке запустить: observer.start в iex

После запуска :observer.start в iex я получил следующие сообщения. Я пытался удалить и переустановить 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


person Kenny    schedule 10.01.2021    source источник


Ответы (4)


Я удаляю wxmac:

brew uninstall wxmac

и переустановил для локальной сборки wxmac вместо установки уже собранного бинарника с помощью дополнительного флага:

brew install --build-from-source wxmac

Обновите плагин erlang для asdf:

asdf plugin-update erlang

а затем установите последнюю версию Erlang:

asdf install erlang latest

и теперь, когда я пытаюсь запустить :observer.start(), все работает!

person rld    schedule 23.02.2021
comment
О Боже мой! Вы решили мою проблему лучше, чем два других места, которые я проверил. Почему это не более популярно? Спасибо!!! - person Michael Campbell; 12.03.2021
comment
у меня работало без переустановки erlang - person Joshua Hunter; 23.03.2021
comment
здорово, приятно знать! - person rld; 24.03.2021

Observer использует WXwidgets для отображения окна и элементов управления на вашей платформе. Поскольку ошибка предполагает, что у вас есть 2 установки, не знаю, как вы справляетесь с такими ошибками на Mac, но я полагаю, что удаление одной из версий решит ошибку.

Чтобы облегчить вашу жизнь, появилась новая возможность запуска наблюдателя в браузере под названием Phoenix Live Dashboard. не требует установки каких-либо локальных зависимостей рендерера.

person Daniel    schedule 10.01.2021
comment
Ах, спасибо за комментарий. Я думал об удалении одной из установок, но беспокоился о последствиях. После переустановки elixir похоже, что он добавляет обе установки, поэтому я попробую. Спасибо за ответ! - person Kenny; 10.01.2021
comment
Недавно я открыл вопрос здесь bugs.erlang.org/browse/ERL-1435 потому что я думал, что это как-то связано с моим недавним обновлением Big Sur. Даже до этого установщики, такие как Brew и ASDF, устанавливали старые версии WXwidgets, которые приводили к ошибкам — см. эту тему здесь — github.com/elixir-lang/elixir/issues/9997 Я думаю, что между Elixir, Erlang и людьми, пишущими установщики, есть пересечение. И этот разрез меня очень смущает. FWIW У меня нет проблем с Linux, но OSX и Observer продолжают вызывать проблемы. - person Gregory Ostermayr; 10.01.2021

Передайте дополнительный флаг brew install для локальной сборки wxmac вместо установки уже собранного бинарного файла.(Кажется, в бутылке bigsur wxmac есть ошибка). Elixir зависит от Erlang, который, в свою очередь, зависит от wxmac для отображения окна наблюдателя. Поэтому сначала выполните это, прежде чем устанавливать erlang или elixir.

brew install --build-from-source wxmac
person Boobalan AP    schedule 29.01.2021

Похоже, что все файлы dylib являются точными копиями друг друга в /usr/local/opt/wxmac/lib. Это может быть проблема с тем, как устанавливаются dylibs для wxmac, но у меня нет терпения, чтобы заняться этим прямо сейчас. Возможно, кто-то с большим знанием, чем я, знает, как исправить формулу заваривания wxmac?

Это немного хак, но я обнаружил, что ручная символическая ссылка на все 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)
person Tom    schedule 28.01.2021