понедельник, 29 июля 2013 г.

Deploying Qt5 app или зачем RTFM

Буквально в тот же вечер как я решил начать писать в блоге, удалось столкнуться с интересной проблемой. Малюсенький проект, состоящий из железки (Arduino ибо дёшево и сердито для такой задачи) плюс софтины столь же примитивной, но из-за нехватки денег у заказчика на оверкильной технологии - Qt, да ещё версии 5.1.0. Ибо за пол-дня пишется.



Вот программа и железка готовы, заказчик приходит около полуночи, а завтра (т.е. уже сегодня) утром всё должно работать. Но вот незадача. Программа работает на моих машинах, причём на Windows и GNU/Linux. Протестировать на виртуальных заранее видимо Великий Китайский Пост (который берёт 30$ за EMS отправление, 5 раз его экспортирует и присылает в Россию через 2 месяца) не позволил. Но запуск на ноутбуке заказчика приводит к "Runtime error" с руганью на visual c++ runtime, причём Qt и проект собраны mingw-gcc и никаких б-гомерзких visua. Естественно лишний раз перепроверяется все ли библиотеки на месте, но в итоге около 3 часов ночи расстаёмся без результата. Я уже пожалел что связался с Qt 5.1.0 ибо 4.7 и 4.8 отлично работали в других проектах и проблем с запуском не было.

На утро новый раунд поиска истины. Переход на Qt 4.8 затруднён т.к. используется QMediaPlayer, которого там нет, а переписывать лень. Не верю что это двигатель прогресса. По мне это высокоуровневый механизм энергосбережения. Полный багов, проявляемых в нынешней среде обитания. Вот почему на этапе тестирования не выявили, а на багрепорты лишь обещания решить потом после смерти.

Но вернёмся к теме. На сайте в мануале же всё есть! Нужен файл qwindows.dll в папке platforms рядом с бинарником. Плохая, не годная инструкция если такая важная информация не читается по диагонали. И многие сообщения на форумах с этой проблемой и ссылкой на эту инструкцию подтверждение теории о лени как "power manager" мозга. Но говорят есть грязный хак чтобы обойти некоторые его баги. Как-нибудь напишу про это если сам овладею.


Комментариев нет:

Отправить комментарий