Ruby游戏盒无法找到文件gosu.for_1_9.so即使它就在那里

时间:2014-03-06 11:57:40

标签: ruby gem libgosu

前言:我在运行Ruby 2.0.0的Windows 8机器上。

我最近为Ruby安装了gamebox gem。在安装所有依赖项的过程中,由于$RUBYHOME/lib/ruby/gems/2.0.0/gems/gosu-0.7.50-x86-mingw32/lib/gosu.for_1_9.so中的某些ASCII / Unicode问题,一些文件(其中包含文件rdoc)无法正确构建,因此被“跳过”。我最初并没有太注意它,但当我试图运行gamebox test_game来设置一个新的gamebox游戏时,它向我发出以下信息:

C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:118:in `require': 126: The specified module could not be found.   - C:/Ruby200/lib/ruby/gems/2.0.0/gems/gosu-0.7.50-x86-mingw32/lib/gosu.for_1_9.so (LoadError)
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:118:in `rescue in require'
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:124:in `require'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/gosu-0.7.50-x86-mingw32/lib/gosu.rb:11:in `<top (required)>'
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:114:in `require'
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:114:in `require'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/gamebox-0.5.0/lib/gamebox.rb:5:in `<top (required)>'
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in  `require'
        from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in  `require'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/gamebox-0.5.0/bin/gamebox:4:in `<top (required)>'
        from C:/Ruby200/bin/gamebox:23:in `load'
        from C:/Ruby200/bin/gamebox:23:in `<main>'

重要的一点是The specified module could not be found. - C:/Ruby200/lib/ruby/gems/2.0.0/gems/gosu-0.7.50-x86-mingw32/lib/gosu.for_1_9.so

然后我回过头来实现了整个Unicode的事情,根据this guyrdoc更新为最新版本,然后运行gem uninstall gosu后跟gem install gosu。一切似乎都很好,我看到所需的文件.../gosu.for_1_9.so正好在它需要的地方。

但是,我仍然无法找到gosu.for_1_9.so 完全相同的错误

我已经能够找到其他人遇到此问题的两个Google搜索结果。在一种情况下,问题是外围的,因为这个人正在攻击他的gosu安装;在另一方面,解决方案是“Ruby 2很糟糕,你应该使用Ruby 1.9”,这实际上不是我的首选。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

正在找到该文件,但与Ruby 2.0.0中的加载不兼容。

这是Gosu的错误/缺失功能。它不适用于Windows上的Ruby 2.0.0。宝石的作者计划将其解决,但尚未解决。您可以在此处跟进Github上的问题:https://github.com/jlnr/gosu/issues/163

作者可以在#gosu的freenode IRC上找到。我相信他们可以在Windows支持上使用一些帮助。不幸的是,在Windows上使用Gamebox的答案是降级到Ruby 1.9.3。我将把它添加到Gamebox维基。

答案 1 :(得分:0)

我同意@ Shawn42

但最好的办法是预先安装一个ruby版本管理器。

带有Pik的RVM就是我在Windows上使用的。

这样你可以安装旧的1.9.3版本的ruby并调用pik来使用该版本,只要你想使用gamebox。您仍然会安装ruby 2.0.0并准备好用于其他项目。

http://www.ruby-on-rails-outsourcing.com/articles/2010/07/28/ruby-version-manager-for-windows/

干杯