我在我的英特尔iMac上运行默认的Ruby安装(ruby1.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如果我注释掉了require 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 shell中运行Ruby。我确信我做了一些基本错误的事情,但我只是被难住了。
发布于 2012-11-05 04:05:16
如果你运行的是Ruby1.8.7,你应该在require语句中留下:
require "rubygems"Ruby 1.8默认情况下不知道gems,所以我们不得不告诉Ruby需要gems加载器。Ruby 1.9+捆绑了它,所以我们不再需要做这些事情了。
这与Mac (或Windows或Linux)操作系统无关,它与Ruby的默认加载路径有关。
而且,作为一个安全提示,不要弄乱苹果安装的Ruby。他们安装它是为了自己使用,它也被用于一些播客创建工具。而且,在将来的某个时刻,他们可能想要向系统添加一些东西,以利用Ruby (或Python或Perl)的预期配置。改变(或者更糟,删除它)会把你搞得一团糟。因此,我建议您不要管它,使用rbenv或RVM在沙箱中安装Ruby,在沙箱中您可以安全地戳、戳和弄乱它。
发布于 2012-11-05 04:25:16
什么版本的OS X?如果是狮子,那你就不走运了。wxwidgets库(以及基于它的东西,比如wxruby)仍然只有32位,并且是基于Carbon的。Lions是64位的,并且Carbon已被弃用。
https://stackoverflow.com/questions/13222124
复制相似问题