[已解决]我写的一个 QT4Ruby 程序报错了,大家帮忙看下撒

我的 ruby2.1-rubygem-qtbindings 是从 devel_languages_ruby_extensions 这个仓库安装的。 kdebindings-smokegen 来自于 openSUSE Update
安装的过程中报了文件冲突的错

不管了,覆盖安装之

我的 hello 小程序

require 'Qt4'
class MyWidget < Qt::Widget
  def initialize(parent=nil)
    super(parent)
    setWindowTitle("hello")

  end
end
app = Qt::Application.new(ARGV)
widget = MyWidget.new
widget.show
app.exec

运行的时候报错了

文件 qtruby4.so 是存在的。

大家看是哪个步骤错了?缺了步骤?

@marguerite

@marguerite 帮忙看下呢?

@Bruce.Auyeung

ruby 的 qtbinding 有两套:一套是 KDE 出的 qtruby,也就是 openSUSE 里的 ruby-qt4,它依赖 libsmokeqt-devel 编译出来,另一套是独立项目,qtbindings,实际上是把 smoke 和 qtruby 从 KDE 项目剥离出来成立的,但不是 KDE 的开发者,也就是 openSUSE 里的 ruby2.x-rubygem-qtbindings。所以 qtbindings 跟 smoke 那一套冲突是肯定的,因为它自带了。

ruby-qt4 已经不怎么维护了,优点是整合 KDE,缺点是 qtwebkit 有个大 bug,用到就会 segmentation fault。qtbindings 没有这个毛病,维护的也很积极,缺点是似乎不支持 KDE 整合。

1赞

问题是这些个包都是 ruby2.1-rubygem-qtbindings 依赖的啊。这我只能说是这些包的依赖关系有 bug 了。
我看你也写了 qtruby 的代码,我想知道你在 openSUSE 下是如何部署 qtruby 环境的呢?

安装 ruby-qt4 就行了,你的代码是没有问题的

1赞

WTF !我之前用 ruby 关键字搜索了 software.opensuse.org , 死活没有找到这个包。而且当时 soo 速度非常慢.
大概是当时 soo 抽风了吧

@Bruce.Auyeung 我都是 rvm…我的代码大部分都是不成型的,所以还不用考虑部署问题。

那个问题回头我去看下。

从我的 iPhone 发送,使用 Tapatalk