crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
posi4
  опции профиля:
сообщение 17.11.2009, 17:01
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 24.4.2009
Пользователь №: 707

Спасибо сказали: 0 раз(а)




Репутация:   0  


Написал я простенькое приложение с графическим интерфейсом и решил проверить его на разных
системах. Естественно возникли вопросы.

Приложение состоит из 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?
Прошу строго не судить, я медленно постигаю эту науку! =)

Сообщение отредактировал posi4 - 17.11.2009, 17:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 17.11.2009, 17:50
Сообщение #2





Гости








    


включить глибц это мощно... а ключик какой для этого использовался?
непонятно - под разные юникс ОС пробовалась одна сборка или каждый раз пересобиралось?
виджеты разъехались? там лайауты есть надеюсь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 17:56
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Моё сравнение:
Виджетов с десяток, Qwt5.2 (сделан осчилограф) данные с трёх компортов (цифруются 3 фазы 50 Гц, частота дискретизации 200 Гц)
Работает на Селерон 950 Мгц Вин2к
Если другие приложения не запускать то осцилаграмма рисуется и пишется в файл без прерываний

Цитата(posi4 @ 17.11.2009, 20:01) *
Писал я это на конфигурации Celeron 2.80GHz, 512 Мб, WinXP SP2, Qt 4.5.2, QtCreator 1.2. Запустил. Работает нормально,
тормозов нет, но чувствуется что компьютеру сил еле еле хватает.
чё-то намудрено в программе
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
posi4
  опции профиля:
сообщение 17.11.2009, 18:08
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 24.4.2009
Пользователь №: 707

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Гость @ 17.11.2009, 17:50) *
включить глибц это мощно... а ключик какой для этого использовался?
непонятно - под разные юникс ОС пробовалась одна сборка или каждый раз пересобиралось?
виджеты разъехались? там лайауты есть надеюсь?


не знаю правильно ли я делал но писал так:
./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


использовалась одна сборка!

С лайаутами все нормально, они есть. Но вот label'ы все почему то стали меньше по размерам, размеры кнопок изменились.
Да, и некоторые лайауты нехотят менять свои размеры! но это я думаю баг QtCreatra или QtDisaignera.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:19
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(posi4 @ 17.11.2009, 18:08) *
использовалась одна сборка!


Имхо, чтобы правильно всё проверить надо:
- на каждой ОС пересобирать Qt из исходников заново
- свою программу собирать на каждой ос заново
- все зависимые/сторонние библиотеки, которые используются в программе под каждой ОС собирать заново

- использовать один и тот же стиль, Plastique например
- убедиться, что используются одни и те же общие шрифты
- убедиться, что на всех ОС стоят нормальные драйвера для видео-карты и другие приложения не тормозят также как и твое
- проверить профайлером
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 18:24
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 17.11.2009, 21:19) *
- на каждой ОС пересобирать Qt из исходников заново
а зачем?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:39
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 17.11.2009, 18:24) *
Цитата(SABROG @ 17.11.2009, 21:19) *
- на каждой ОС пересобирать Qt из исходников заново
а зачем?


Потому, что в исходниках вполне могут быть дефайны, которые учитывают особенности конкретной версии операционной системы, а также конкретной версии компилятора.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 18:44
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а у него сборка статическая, все зависимости Qt должны быть включены в бинарь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:56
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 17.11.2009, 18:44) *
а у него сборка статическая, все зависимости Qt должны быть включены в бинарь


Да, но код в этих зависимостях был сгенерен для другой ОС, поэтому не факт, что программа будет работать стабильно или быстро.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 19:03
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


где-то у трлей было описание как это делать, чтоб на разных линухах работало. А вот где, не помню.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 18.11.2009, 8:38
Сообщение #11


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


2 SABROG,
+1

ИМХО, собирать под разные ОС - самый лучший вариант, т.к. если делать одну сборку на всех - то много "геммороя".
К тому же насчет Glibc - как вы представляете статически ее скомпилить?
Она же в дистрибудивах - SHARED LIB, поэтому ИМХО, нужно в этом случае брать и вкомпиливать в прогу исходники этой самой Glibc и т.п. и т.д

А если уж делать одну сборку приложения динамически - то нужно как-то указать компилятору и т.п., чтобы использовалась архитектура i386 и стандарные всякие функции Glibc и чо-то там еще... - для того, чтобы
приложение могло работать на других машинах..

Плюс к тому - топикстартеру хорошо бы проверить - как у него настроена видяха, т.к. может быть не установлены проприетарные дровишки - от этого такие тормоза.. Или вообще режим vesa стоит :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
posi4
  опции профиля:
сообщение 18.11.2009, 11:12
Сообщение #12


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 24.4.2009
Пользователь №: 707

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
- на каждой ОС пересобирать Qt из исходников заново
- свою программу собирать на каждой ос заново
- все зависимые/сторонние библиотеки, которые используются в программе под каждой ОС собирать заново

наверное ты прав, но тогда вся идея кросплатформенности идет лесом! имхо

Цитата
- убедиться, что на всех ОС стоят нормальные драйвера для видео-карты и другие приложения не тормозят также как и твое

Цитата
хорошо бы проверить - как настроена видяха, т.к. может быть не установлены проприетарные дровишки - от этого такие тормоза.. Или вообще режим vesa стоит

спасибо, этим займусь, потому что как то не задумывался об этом раньше. обычно на виндах раз все установишь и забываешь.

Еще вопрос, как запустить приложение написанное под Qt 4.5.3 на более старых версиях ОС? думаю что лет 15 назад когда
был всё тот же Solaris 5(будь он проклят=) Qt только начинала свой путь, и сейчас уже все поменялось! это значит не получить
мне уже на этой системе тех вкусностей которые я запихнул в свое приложение! или можно все таки перевести код, ну может на более старую версию Qt?
с этим сталкивался кто нибудь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2009, 11:17
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(posi4 @ 18.11.2009, 14:12) *
но тогда вся идея кросплатформенности идет лесом!
вообще-то троли упоминают только переносимость на уровне исходников.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 18.11.2009, 11:26
Сообщение #14





Гости








    


под солярис по-любому надо собирать отдельную версию. Он конечно юникс, но у него совсем другой формат библиотек\исполняемых файлов, нежели в линуксе, программа из линупса и не должна работать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.6.2025, 10:17