将QtRuby应用程序打包并分发为gem?或者怎么样?

时间:2010-10-29 08:59:27

标签: rubygems static-libraries packaging qtruby

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

  1. 用户不必构建或编译任何东西,特别是Qt库,安装Ruby和Rubygems是可以的,但不能更多
  2. 它必须在Mac和Windows上运行,Linux也是最好的
  3. 我试过tar2rubyscript& rubyscript2exe但由于一些神秘错误而失败,正如我在KDE-bindings mailing list上所描述的那样

    #qtruby IRC频道上的一个有用的人建议我把它捆绑为一个宝石并释放它。我一直试图这样做,但我的问题是,如何将qtbindings链接到静态 Qt库?我创建了gemspec,我使用了bundler,但它是针对原生的Qt开发库/标头构建的......我的用户也不会这样做。

    所以我的问题是:

    1. 我可以使用宝石吗?如果是这样,我如何让用户针对我提供的Qt静态库构建qtbindings?
    2. 你知道有什么其他方法来打包qtruby应用程序吗?你做过吗?

1 个答案:

答案 0 :(得分:0)

我在Qt中做了很多开发但是我还在学习Ruby和QtRuby所以,请你带着一点点盐。

我不会采用gem路线,并尝试将其打包,就像我以前使用的商业Qt应用程序一样。

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

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

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