Упаковывать и распространять приложение QtRuby как драгоценный камень? Или как? - PullRequest
2 голосов
/ 29 октября 2010

Я закончил разработку настольного приложения Ruby с графическим интерфейсом, которое использует Qt через гем qtbindings, и мне нужно выпустить его с несколькими требованиями:

  1. Пользователю не нужно собирать или компилироватьчто угодно, особенно библиотеки Qt, установка Ruby и Rubygems в порядке, но не более
  2. Он должен работать на Mac и Windows, Linux тоже желательно

Я пробовал tar2rubyscript & rubyscript2exe, ноЯ потерпел неудачу из-за некоторых загадочных ошибок, как я описал в Списке рассылки KDE-bindings

Полезный парень на канале #qtruby IRC предложил мне связать его как гем и выпустить.Я пытался это сделать, но моя проблема в том, как связать qtbindings с static Qt библиотекой?Я создал gemspec и использовал bundler , но он строится на собственных библиотеках / заголовках разработки Qt ... и у моих пользователей этого не будет.

Итак, мои вопросы, опять же:

  1. Могу ли я использовать драгоценный камень для этого?Если да, то как я могу заставить пользователя создавать qtbindings для предоставленной мной статической библиотеки Qt?
  2. Знаете ли вы какой-либо другой способ упаковки приложения qtruby?Ты сделал это?

1 Ответ

0 голосов
/ 31 октября 2010

Я проделал большую разработку в Qt, но я все еще изучаю Ruby и QtRuby, поэтому, пожалуйста, возьмите это с крошкой соли.

Я бы не пошел по маршруту с самоцветами и попробовал быупаковать его так же, как коммерческое приложение Qt, над которым я работал.

Один пакет, включающий в себя все, что нужно программе для запуска.Это может включать в себя привязки Qt4 Ruby и библиотеки Qt, а также все остальное, что вам нужно для его запуска, но оно не включено [установка Windows vanilla / установка MacOS vanilla / наиболее часто поддерживаемая стандартная база Linux] с возможным исключением интерпретатора Ruby.сам по себе.

Оберните ваше приложение в сценарий, чтобы настроить LD_LIBRARY_PATH и другие переменные окружения, чтобы убедиться, что все работает с динамическими библиотеками, которые вы отправляете, но не установлены на цели Linux.В Windows просто оставьте их (динамические библиотеки) в главной главной папке, хотя вы также можете перейти к сценарию маршрута.Я никогда не развертывался на Mac, поэтому не знаю, но могу представить, что он похож на маршрут Linux.

Я знаю, что это не элегантно, но, по крайней мере, работает.

...