Сводка
Я пишу приложение Ruby 1.9.2 с использованием Qt4 для графического интерфейса пользователя, которое я хочу распространять в Linux, OS X и Windows.У меня приложение работает нормально на всем, кроме 64-разрядной версии Windows 7.
Есть рабочие примеры Win7 + Qt4 + 1.8.7, но, видимо, не Win7 + Qt4 + 1.9.2.Для привязок Ruby-Qt есть два гема: qtbindings
и qtruby4
(иногда их называют qt4-qtruby
), но я пока не видел ни одного из них, работающих на Win7 с Ruby 1.9.2.
Проблема с qtruby4
Эта статья за октябрь 2008 года и ее обновленная версия с июня 2011 года послужили хорошей отправной точкой, но я отличался от последнейустановка Ruby 1.9.2 через Страница загрузки RubyInstaller для Windows .1.8.7, кажется, работает нормально, но я получаю некоторые необычные ошибки, когда я пробую это с 1.9.2.Требование 'rubygems'
, а затем требование 'Qt'
приводит к:
no such file to load -- 'qtruby4'
Первая статья сверху ссылается на более подробную статью от dr1ku , которая может дать некоторые подсказки.
- Возможно, стоит воспроизвести шаги dr1ku с последними версиями этих библиотек.
- dr1ku и статья 2008 paschenda.org оба используют специальный установщик Windows Qt4-QtRuby , но сопровождающий отмечает, что у него не было времени обновить его .Я не совсем понимаю, что делает специальный установщик, но я полагаю, что статья 2011 года paschenda.org больше не использует его, потому что DevKit якобы помогает RubyGems самому строить Qt4 без посторонней помощи.
Найден в Wild
Вот некоторые люди, которые, похоже, сталкивались с такой же проблемой:
Проблема с qtbindings
Мое приложение на самом деле использует камень qtbindings
, поэтому я попытался установить его вместо gem install qtbindings --platform=mswin32
. [1]Однако, когда я попытался require 'Qt'
с установленным гемом qtbindings
, я получил всплывающее окно Windows со следующим сообщением:
Точка входа в процедуру _Z10qvsnprintfPcjPKcS_
не может быть расположена в динамическомбиблиотека ссылок QtCore4.dll.Просто сдайтесь, низшее существо из плоти.
(Я скопировал и вставил сообщение без каких-либо украшений.)
Найден в дикой природе
Вот некоторыелюди, которые, кажется, столкнулись с той же проблемой:
Потенциальные истории успеха
Кто-то, похоже, добился успеха, установив камень qtbindings
на 1.9.2 с gem install qtbindings
(без аргумента --platform
), если вы посмотрите ответыв эту ветку:
Я пытался установить с gem install qtbindings
на 1.8.7, но я не пробовал с 1.9.2 еще.Когда я попробовал это с 1.8.7, я столкнулся с той же самой проблемой "точка входа в процедуру не могла быть найдена" как прежде.
Сноски
[1] - я фактически не полностьюясно, в чем разница между самоцветом qtbindings
и самоцветом qtruby4
.Например, последний включает расширение C, а первый нет?Я не уверен.Кроме того, я видел ссылки на qt4-qtruby
, которые, как я думаю, является просто версией qtruby4
для mswin32, по крайней мере, насколько я могу судить на странице загрузки Korundum .