我正在我的英特尔iMac上运行默认的露天安装(Ruby 1.8.7(2010-01-10 Patchlevel 249)[i686-darwin10])。我更新了RubyGems并安装了WXRUBY GEM。我正在尝试运行以下示例程序:
#!/usr/bin/ruby
require "rubygems"
require "wx"
class MyApp < Wx::App
def on_init
@frame = Wx::Frame.new(nil, -1, "The Bare Minimum")
@frame.show()
end
end
app = MyApp.new()
app.main_loop()
我会收到以下错误:
==> wxruby-test.rb
/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle, 9): no suitable image found. Did find: (LoadError)
/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
from /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wx.rb:12
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
from wxruby-test.rb:3
如果我评论RubyGems语句,我会收到以下错误:
==> wxruby-test.rb
wxruby-test.rb:3:in `require': no such file to load -- wx (LoadError)
from wxruby-test.rb:3
我是Mac上Ruby的新手,我敢肯定,这可能是与路径有关的一些基本错误,但是关于环境变量的大多数解释都是针对经验丰富的用户。如果您需要其他命令的输出,请告诉我。我正在从TCSH外壳中运行Ruby。我敢肯定我在做错了什么,但我只是很难过。
如果您正在运行Ruby 1.8.7,则应留在require
语句中:
require "rubygems"
Ruby 1.8默认情况下不知道宝石,因此我们必须告诉Ruby需要Gems Loader。红宝石1.9 捆绑它,因此我们不再需要执行要求。
这与Mac(或Windows或Linux)OS无关,它与Ruby的默认负载路径有关。
,作为安全提示,不要弄乱苹果安装的红宝石。他们安装了它供自己使用,并用于某些播客创建工具。而且,在未来的某个时候,他们可能想在系统中添加一些利用Ruby(或Python或Perl)的配置的系统。更改(或更糟糕的是,删除它)会弄乱您。因此,我建议您不理会它,并使用RBENV或RVM将Ruby安装在沙箱中,您可以安全地戳,prod和with and tod。
哪个版本的OS X?如果这是狮子之一,那么您就不幸了。WXWIDGETS库(以及基于它的事物,例如Wxruby)仍然只有32位,并且基于碳。狮子只有64位,碳被贬低。