新手问题 请问使用 Qt 对 Ruby 版本有什么要求吗?

guanzhe · 2014年03月19日 · 最后由 suigege23 回复于 2018年06月19日 · 3905 次阅读

为什么我用 Ruby1.8.7 就能 require‘Qt’,用 1.9.3 就出现: cannot load such file -- Qt from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' from (irb):1 from /usr/bin/irb:12:in `'

求解??

gem list 看下有没有安装

2 楼 已删除

#1 楼 @windwiny 我安装了 rubygem 里面有 qtbindings (4.8.3.0),是不是就算是安装了 qt

#1 楼 @windwiny 我删除了 rubygems,重新下载了 ruby1.9.3,并且安装了 qtbindings 然后 gem list 里面有: minitest (4.7.5) multi_json (1.8.2) qtbindings (4.8.5.2) tzinfo (0.3.38)

再 require‘Qt’,还是不行 irb(main):004:0> require 'Qt' NameError: uninitialized constant Qt::RubyThreadFix::Queue from /var/lib/gems/1.9.1/gems/qtbindings-4.8.5.2/lib/Qt4.rb:30:in const_missing' from /var/lib/gems/1.9.1/gems/qtbindings-4.8.5.2/lib/Qt4.rb:30:inclass:RubyThreadFix' from /var/lib/gems/1.9.1/gems/qtbindings-4.8.5.2/lib/Qt4.rb:26:in <module:Qt>' from /var/lib/gems/1.9.1/gems/qtbindings-4.8.5.2/lib/Qt4.rb:25:in' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' from /var/lib/gems/1.9.1/gems/qtbindings-4.8.5.2/lib/Qt.rb:1:in <top (required)>' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from (irb):4 from /usr/bin/irb:12:in'

#3 楼 @guanzhe 这个 gem 是不是你自己安装的,安装时有没出错?

看你的错误提示就是没加载到这个 gem

#5 楼 @windwiny 现在怎么办啊?

好像 qt 对新版本 ruby 不支持

#4 楼 @guanzhe 这个就不知道了。搜索一下整个目录里,哪里有定义 Qt::RubyThreadFix::Queue

Qt 比较靠谱的就 C++ 和 Python,其他语言的 binding 用的人很少,支持也不完善,会有不少坑。

#8 楼 @windwiny 嗯,我在看看,谢谢!

如果是我,宁愿换语言也不用不完善的库,尤其是需要编译的,调试的时间就是黑洞。

#11 楼 @linjunhalida 没有啊,我觉的 Qtruby 还是蛮好用的。不过,我发现好像确实只支持 1.8

#12 楼 @guanzhe 好用归好用,真要遇到一个 bug,调死人。。

#4 楼 @guanzhe require 'thread' 一下,error message "uninitialized constant Qt::RubyThreadFix::Queue (NameError) " will be gone.

被提示: irb(main):001:0> require 'Qt' Traceback (most recent call last): 4: from /usr/bin/irb:11:in <main>' 3: from (irb):1 2: from /usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:inrequire' 1: from /usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' LoadError (cannot load such file -- Qt)

版本是 2.5.0,看来是真的不支持高版本,好可惜。希望 JIT 的 2.6 未来能支持

需要 登录 后方可回复, 如果你还没有账号请 注册新账号