Написал я простенькое приложение с графическим интерфейсом и решил проверить его на разных
системах. Естественно возникли вопросы.
Приложение состоит из 15 кнопок, около 40 doublespinbox'ов, 10 radiobuttun'ов, 2 графика qwt_plot в каждом по четыре кривые,
графики обновляются в реальном времени, примерно 5 раз в секунду приходят 8 массивов по 1000 точек. Ну вообщем по ресурсам
пустяк.
Писал я это на конфигурации Celeron 2.80GHz, 512 Мб, WinXP SP2, Qt 4.5.2, QtCreator 1.2. Запустил. Работает нормально,
тормозов нет, но чувствуется что компьютеру сил еле еле хватает.
Запустился под Celeron 2.80GHz, 512 Мб, КУбунту 9.04. правда там уже стоит Qt 4.5.3 , но я думаю версия Qt роли здесь не играет, QtCreator 1.3. Откомпилировал.
Запустил. Ну, во-первых, графика съехала, всё вроде присутствует, но всё криво стало; во-вторых, появились тормоза,
примерно такие, нажимаешь на кнопку, а нажимается она с задержкой секунды 1.5 - 2, так же со всеми остальными виджетами;
при отрисовке графиков пропускаются кадры, поэтому всё выглядит как новогодняя мигающая гирлянда.
Скомпилировал всё статически, поставил запустил программу на другом компе, Core2 Duo 1.80 Гц, 1Гб.
Сначало на WinXP SP2, работает всё бастрее раза в 3-4, никаких внешних изменений, ну это и понятно.
Потом загрузился под установленным там Линуксом, Linux Mint 7 (ядро Ubuntu 9.04), работает тоже быстро,
но проблема с пропуском кадров осталась и добавилась еще одна. одна из функций qwt перестала перерисовывать область где выводятся графики если их
маштабировать.
Еще я попробывал запустить это всё на Red Hat v.4 / AS, тот мне сказал что нужна ему GLIBC 2.4 , хотя при сборке статической Qt я прописывал что бы
glib была туда включена. Да и вообще как я понимаю это стандартная библиотека для unix-подобных систем и уже должна быть на компе.
И напоследок вишенка на торт, попытался запустить под Solaris 5(!!!), ну тут всё просто "cannot execute" - вот и весь ответ.
Вопрос то вот в чём, есть ли какие универсальные способы написания программ или приемы(трюки), чтоб потом не мучаться с переносом приложений?
Что кто думает вообще на эту тему? И как мне все это заставить работать на Solaris 5?
Прошу строго не судить, я медленно постигаю эту науку! =)
включить глибц это мощно... а ключик какой для этого использовался?
непонятно - под разные юникс ОС пробовалась одна сборка или каждый раз пересобиралось?
виджеты разъехались? там лайауты есть надеюсь?
Моё сравнение:
Виджетов с десяток, Qwt5.2 (сделан осчилограф) данные с трёх компортов (цифруются 3 фазы 50 Гц, частота дискретизации 200 Гц)
Работает на Селерон 950 Мгц Вин2к
Если другие приложения не запускать то осцилаграмма рисуется и пишется в файл без прерываний
./confiure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -no-gtkstyle -sm -glib -nomake demos -nomake examples -nomake tools -prefix /home/qtsdk-2009.04/qt_static
а у него сборка статическая, все зависимости Qt должны быть включены в бинарь
где-то у трлей было описание как это делать, чтоб на разных линухах работало. А вот где, не помню.
2 SABROG,
+1
ИМХО, собирать под разные ОС - самый лучший вариант, т.к. если делать одну сборку на всех - то много "геммороя".
К тому же насчет Glibc - как вы представляете статически ее скомпилить?
Она же в дистрибудивах - SHARED LIB, поэтому ИМХО, нужно в этом случае брать и вкомпиливать в прогу исходники этой самой Glibc и т.п. и т.д
А если уж делать одну сборку приложения динамически - то нужно как-то указать компилятору и т.п., чтобы использовалась архитектура i386 и стандарные всякие функции Glibc и чо-то там еще... - для того, чтобы
приложение могло работать на других машинах..
Плюс к тому - топикстартеру хорошо бы проверить - как у него настроена видяха, т.к. может быть не установлены проприетарные дровишки - от этого такие тормоза.. Или вообще режим vesa стоит
под солярис по-любому надо собирать отдельную версию. Он конечно юникс, но у него совсем другой формат библиотек\исполняемых файлов, нежели в линуксе, программа из линупса и не должна работать
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)