如何在Windows7上使用ruby 1.9.2运行Qt4? 总结
我正在编写一个Ruby1.9.2应用程序,它的GUI使用Qt4,我想在Linux、OSX和Windows上发布它。除了我的Windows7 64位机外,我的应用程序在所有设备上都运行良好 有Win7+Qt4+1.8.7的工作示例,但显然不是Win7+Qt4+1.9.2。Ruby Qt绑定有两个宝石,如何在Windows7上使用ruby 1.9.2运行Qt4? 总结,ruby,windows-7,qt4,ruby-1.9,qtruby,Ruby,Windows 7,Qt4,Ruby 1.9,Qtruby,我正在编写一个Ruby1.9.2应用程序,它的GUI使用Qt4,我想在Linux、OSX和Windows上发布它。除了我的Windows7 64位机外,我的应用程序在所有设备上都运行良好 有Win7+Qt4+1.8.7的工作示例,但显然不是Win7+Qt4+1.9.2。Ruby Qt绑定有两个宝石,qtbindings和qtruby4(有时称为qt4qtruby),但我还没有看到它们在Win7上运行Ruby 1.9.2 qtruby4的问题 它是一个很好的起点,但我与后者的不同之处在于,我安装了
qtbindings
和qtruby4
(有时称为qt4qtruby
),但我还没有看到它们在Win7上运行Ruby 1.9.2
qtruby4的问题
它是一个很好的起点,但我与后者的不同之处在于,我安装了Ruby 1.9.2 via。1.8.7似乎工作正常,但当我尝试使用1.9.2时,会出现一些异常错误。要求'rubygems'
然后要求'Qt'
会导致:
no such file to load -- 'qtruby4'
上面的第一篇文章链接到一个可能提供一些线索的网站
- 用这些库的最新版本复制dr1ku的步骤可能是值得的
- dr1ku和2008年的paschenda.org文章都使用了a,但维护人员注意到他使用了。我不完全清楚这个特殊的安装程序是做什么的,但我想paschenda.org 2011年的文章不再使用它了,因为DevKit表面上帮助RubyGems自己在没有帮助的情况下构建Qt4
野外发现
以下是一些似乎遇到过同样问题的人:
qtbindings的问题
我的应用程序实际上使用了qtbindings
gem,因此我尝试安装它,使用gem安装qtbindings--platform=mswin32
[1]但是,当我尝试要求安装qtbindings
gem时,我收到一个带有以下消息的Windows弹出窗口:
找不到程序入口点\u Z10qvsnprintfPcjPKcS
在动态链接库QtCore4.dll中。放弃吧,低等肉身生物
(我复制并粘贴了这条信息,没有任何修饰。)
野外发现
以下是一些似乎遇到过同样问题的人:
潜在的成功案例
有人似乎已经成功地在1.9.2上用gem install qtbindings
(no--platform
参数)安装了qtbindings
gem,如果您查看对此线程的回复:
我在1.8.7上尝试了使用gem安装qtbindings
进行安装,但我还没有在1.9.2上尝试过。当我尝试使用1.8.7时,我遇到了与以前相同的“无法定位程序入口点”问题
脚注
[1] -实际上,我并不完全清楚qtbindings
gem和qtruby4
gem之间的区别。例如,后者是否包括C扩展而前者不包括?我不确定。此外,我还看到了对qt4qtruby
的引用,我认为这只是qtruby4
的mswin32版本,至少从解决方案来看是这样的
以下步骤适用于Windows 7:
通过安装Ruby 1.9.2
在Windows shell中,运行gem安装qtbindings
这个简单的例子(require'rubygems';require'Qt'
)现在应该可以工作了
不需要额外的步骤,因为仅为Windows平台提供了二进制gem。因此,gem安装qtbindings
步骤在下载大型二进制文件时需要几分钟的时间,但它包含需要和运行Qt应用程序的所有必要部分
支持在Windows上从源代码进行编译,并记录在项目文件中
底层
我给qtbindings
和qtruby
的维护者发了电子邮件。以下是完整的故事:
qtruby
是由提供的软件包。Korundum为所有KDE提供Ruby绑定,而qtruby
仅为Qt提供绑定
qtbindings
()是专门为跨平台使用而优化的qtruby
的修改和重新打包版本。我将从以下位置复制并粘贴“目标”部分:
目标
为了便于在所有平台上安装Ruby的Qt绑定
使用RubyGems
为捆绑的Windows维护最新的二进制gem
使用来自的最新版本的Qt
将绑定的范围和维护减少为仅绑定到
Qt SDK提供的库
提高与非linux平台的兼容性
尽管提供了其gem的mswin32
版本,但截至本文撰写之时,没有任何人对它们进行积极审查,因此不应依赖它们。QtRuby维护人员告诉我,RubyForge页面在QtRuby 3发布之前可能不可靠
重述
现在(2011年3月10日),不要在Windows上使用qtruby
gem。使用qtbindings
您可能能够在其他平台上使用qtruby
,在Windows上使用qtbindings
,但您可能会自找麻烦。如果您只是选择Qt,而不关心KDE的其余部分,qtbindings
可能是一个安全的选择
QtRuby的维护者正在计划在不久的将来进行一些方法更新(例如使用git),因此,这两个项目之间可能会有更多的共享修复和更新。您是否有可能包含一个四行应用程序来演示问题?@sarnold-只要您尝试要求“Qt”
,问题就会出现,因此即使是一个四行示例也会被忽略。这就是文件中查看问题所需的全部内容:require'rubygems';需要'Qt'
Wild guess:1.8.7安装程序将标准C库作为instal的一部分