LoginSignup
7
1

More than 1 year has passed since last update.

Elixirでobserver.start() したときにエラーが出たので対応した時の話(wxWidgets 3.1.5の時

Posted at

始めに

皆さん、ErlangのObserverを使用されていますか!
私は好きでよく見たり、検証の時などは開いてみたりしてチェックしたりと好きで使っています。
今回はobserver.start()してエラーが出たときの対処をしたのですが日本語の記事は検索能力が低かったのか見つからなかったので記載していこうと思います

環境

macOS Catalina
wxWidgets 3.1.5

ERROR: Could not find 'wxe_driver.so' のエラーが出る

iexを起動してobserver.start()をしてみたところ下記のようなエラーが出力されました。

{:error,
 {{:load_driver, 'No driver found'},
  [
    {:wxe_server, :start, 1, [file: 'wxe_server.erl', line: 65]},
    {:wx, :new, 1, [file: 'wx.erl', line: 115]},
    {:observer_wx, :init, 1, [file: 'observer_wx.erl', line: 107]},
    {:wx_object, :init_it, 6, [file: 'wx_object.erl', line: 404]},
    {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}
  ]}}

検索するとこちらの記事のように出てきます。
あまり使わない環境なので入れてなかったか、ごめんなさいと思いながら brew install wxwidgetsを実行し、asdf で Erlangを入れ直しました。

それでも止まらぬエラー

入れ直しましたが、それでもエラーの結果は変わりません。
なんでだろうなーっと思いながらErlangのインストール時のログを読んでみると下記のように記載されていました

 * wx             : wxWidgets was not compiled with --enable-compat28, wx will NOT be useable
 * Can not link the wx driver, wx will NOT be useable

--enable-compat28 のオプションが指定されていないと使用できないようなのでオプション指定する必要がありそうです。
asdf-erlangのIssueに、brew editでwxWidgetsのインストール時のargsを書き換えて、--enable-compat28のオプションを追加すればイケるっという記載があります。
これで勝ったな!っと思い実行していきます。

それでもエラーは変わらない

実際に --enable-compat28 を追加してbrew installをし直しますが、それでもエラーは変わりません。
なんなら、wxWidgets was not compiled with --enable-compat28, wx will NOT be useable の表示も消えません。
そんなことある!?っと思いながら、なんでだろうななんでだろうなーっと思っていたら、ElixirForumに答えは載っておりました

brew upgrade wxmac --build-from-source

どうやら、オプションで明示的にソースからビルドしようねっという指定が必要のようです。
実際に私が実行したコマンドはbrew reinstall wxmac --build-from-sourceでしたが、こちらで問題なくobserver.start()できるようになりました。
wxwidgetswxmacの違いは名前指定の指定ぐらいなのでここでは気にする必要はありません。

結論

ElixirForum は本当に参考になるので毎回ありがとうございます!!

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1