2

我已经完成了一个通过 qtbindings gem 使用 Qt 的 GUI 桌面 Ruby 应用程序,我需要发布它并满足一些要求:

  1. 用户无需构建或编译任何东西,尤其是 Qt 库,安装 Ruby 和 Rubygems 即可,但仅此而已
  2. 它必须在Mac和Windows上运行,最好是Linux

我已经尝试过 tar2rubyscript 和 ruby​​script2exe 但由于一些神秘的错误而失败了,正如我在KDE-bindings 邮件列表中所描述的那样

#qtruby IRC 频道上一位乐于助人的人建议我将其捆绑为 gem 并发布。我一直在尝试这样做,但我的问题是,如何将 qtbindings 链接到静态Qt 库?我制作了 gemspec,并使用了bundler,但它是针对本机 Qt 开发库/头文件构建的。我的用户不会拥有它。

所以我的问题是,再次:

  1. 我可以为此使用宝石吗?如果是这样,我如何让用户针对我提供的 Qt 静态库构建 qtbindings?
  2. 您知道打包 qtruby 应用程序的任何其他方式吗?你做了吗?
4

1 回答 1

0

我在 Qt 中做了很多开发,但我仍在学习 Ruby 和 QtRuby,所以,请谨慎对待。

我不会走 gem 路线,而是会尝试将其打包,就像我曾经从事的商业 Qt 应用程序一样。

包含程序需要运行的所有内容的单个包。这将包括 Qt4 Ruby 绑定和 Qt 库以及您需要它运行的所有其他内容,但它不在 [Windows vanilla 安装/MacOS vanilla 安装/最普遍支持的 Linux 标准库] 上,可能除了 Ruby 解释器在自身。

将您的应用程序包装在脚本中以设置 LD_LIBRARY_PATH 和其他类型的环境变量,以确保一切都适用于您正在运送但未安装在 Linux 目标上的动态库。在 Windows 上,只需将它们(动态库)留在主文件夹中,尽管您也可以使用脚本路径。我从未在 Mac 上部署过,所以我不知道,但我可以想象它类似于 Linux 路线。

我知道这并不优雅,但至少它有效。

于 2010-10-31T14:09:52.723 回答