WSL2上のElixrからGUIを表示させたい

Elixir
更新2020/12/01
openglをelixirから触りたくてひとまずGUIを扱えるようにする下準備をしています。

やりかた

VcXsrv Windows X Server を導入。参考 ->WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)
なお起動時にDisable access controlにチェックを入れる必要があります。
また場合によってはWindows側のファイヤーフォールの設定も許可する必要もありそうです。

.bashrcに下記を設定
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
参考->https://github.com/microsoft/WSL/issues/4106#issuecomment-501885675


設定を再読み込み
$ source .bashrc
起動します
$ iex
iex>  :wx.demo
いけたようです。


Could not find `wxe_driver.so` と言われる

wxWidgets が入ってないと発生するようです。
私の場合はasdfでerlangを導入したのですが、導入時にライブラリが足りてないとこうなる模様。
そこで公式に書いてある通りに必要なライブラリを追加します。私の場合Ubuntu-18.04で行っています。
apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop
そしてerlangを入れなおします。
$ asdf list # 今は入ってるerlangのversionを確認
$ asdf uninstall erlang XX.X.XX
$ asdf install erlang XX.X.XX
私の場合これで動くようになりました。


参考にさせていただいた記事
:observer.start()するとERROR: Could not find 'wxe_driver.so'となる場合
WSL2のX-ServerでGUI表示する際に「export DISPLAY=:0.0」が効かない
Could not find `wxe_driver.so`

書いた人/このブログについて

サーバーサイドエンジニア。お仕事ではRubyとPerl。趣味ではC#やHLSLなどを少しと、3DCGでPythonをごまかしながら使う感じ。Unityとインフラ周りも好き。

自分の備忘録もGoogle検索に任せたくてこのブログ書いてる。Phoenix製でEC2上で稼働中。