未定义的函数:wx_object.start / 3

时间:2016-05-13 14:55:59

标签: erlang elixir

我曾尝试在我的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它是如何创建的。 无论如何,它现在有效..

2 个答案:

答案 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"在控制台中打印预期的路径?)