我曾尝试在我的Mac 64bit上安装ErLang,Capitan,我已尝试通过brew安装它,但是当我尝试运行时:observer.start我收到此错误:
** (UndefinedFunctionError) undefined function :wx_object.start/3 (module :wx_object is not available)
:wx_object.start(:observer_wx, [], [])
observer_wx.erl:72: :observer_wx.start/0
我还尝试使用erlang解决方案安装erLang otp 18.3,但我也遇到了同样的错误。
有什么想法吗?
修改
如果我尝试直接从Erlang shell启动观察者:
^CiMac:~ Apple$ erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1> observer:start().
** exception error: undefined function wx_object:start/3
in function observer_wx:start/0 (observer_wx.erl, line 72)
EDIT2
iMac:~ Apple$ brew info erlang
erlang: stable 18.3 (bottled), HEAD
Programming language for highly scalable real-time systems
https://www.erlang.org/
/usr/local/Cellar/erlang/18.3 (7,489 files, 273.8M)
Poured from bottle on 2016-05-13 at 12:24:59
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/erlang.rb
==> Dependencies
Build: autoconf ✔, automake ✔, libtool ✔
Required: openssl ✔
Recommended: wxmac ✔
Optional: fop ✘
==> Options
--with-dirty-schedulers
Enable experimental dirty schedulers
--with-fop
Build with fop support
--with-native-libs
Enable native library compilation
--without-docs
Do not install documentation
--without-hipe
Disable building hipe; fails on various OS X systems
--without-wxmac
Build without wxmac support
--HEAD
Install HEAD version
==> Caveats
Man pages can be found in:
/usr/local/opt/erlang/lib/erlang/man
Access them with `erl -man`, or add this directory to MANPATH.
iMac:~ Apple$ which erl
/opt/local/bin/erl
啤酒信息中的错误是:
/usr/local/Cellar/erlang/18.3
但是,它是:
/选择/ local / bin目录/ ERL
它指向/opt/local/lib/erlang/bin/erl
如果我开始/usr/local/Cellar/erlang/18.3/bin/erl
观察者会工作!
所以,我用鼠标和我删除了别名:
sudo ln -s /usr/local/Cellar/erlang/18.3/lib/erlang/bin/erl /opt/local/bin/erl
但我不确定/opt/local/lib/erlang/bin/erl
它是如何创建的。
无论如何,它现在有效..
答案 0 :(得分:1)
在许多系统上,默认情况下不支持带有wx的Erlang。它可以通过编译选项启用。有时会有一个单独的包,它已经用wx支持编译,例如FreeBSD上的erlang-wx。
快速Google搜索显示了此示例文章,该文章提供了有关recompiling Erlang on Mac with wx已启用的一些信息。
答案 1 :(得分:1)
鉴于语法看起来你正在使用Elixir: - )
无论如何,一个可能的答案是你需要用WxWidgets构建的Erlang,这是观察者使用的GUI工具包。
如果我查看Erlang(http://brewformulas.org/Erlang)的自制语法,它会显示它将安装" Wxmac"依赖,所以它应该引入WxWidgets ...
如果您尝试直接从Erlang shell启动观察者,会发生什么?
1> observer:start().
(我已经在MacPorts中安装了它,开箱即用)。
修改强>
看起来Erlang没有WxWidgets。您可以尝试brew info erlang
,它会显示已安装的版本以及是否安装了wxmac
依赖项。
你确定你开始正确的erl吗? brew安装的那个? (" which erl
"在控制台中打印预期的路径?)