ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: QT4 и Тион-Про  (Прочитано 15585 раз)

0 Пользователей и 1 Гость просматривают эту тему.

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
QT4 и Тион-Про
« : 24 Мая, 2010, 03:11:55 »

Здравствуйте!

Потихоньку разбираюсь с Тионом и Qt. Накопилось пару вопросов, в которые хотелось бы внести ясность:

1) После компилиции приложения и переносе его на Тион, что еще необходимо установить или настроить, чтобы оно запустилось?

2) Что необходимо сделать в Тионе и при сборке Qt, чтобы была возможность работы с тачскрином и с помощью мыши? Насколько я понял, при сборке нужно подключать как-то библиотеку tslib. Я прав?

Спасибо!
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #1 : 24 Мая, 2010, 09:20:21 »

> работы с тачскрином и с помощью мыши?
tslib/qt-mouse-tslib и qt-mouse-pc


> что еще необходимо установить или настроить, чтобы оно запустилось?

export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
(сейчас делается в /etc/profile)

./my-qt-prorg  -qws

Это в том случае, если всё правильно.
Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #2 : 24 Мая, 2010, 10:57:34 »

Т.е никакие Qt-ные библиотеки встраивать не надо в Тион?

При сборке Qt я использовал опцию -static.

А еще еще видел, что вроде бы нужно устанавливать переменные окружения, типа
export QWS_MOUSE_PROTO=TPanel:/dev/misc/ep93xx_ts
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice

Или это лишнее?
« Последнее редактирование: 24 Мая, 2010, 11:44:51 от kapa77 »
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #3 : 24 Мая, 2010, 12:24:01 »

Кому как.
Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #4 : 26 Мая, 2010, 00:03:20 »

Собрал у себя на виртуальной машине в Kubuntu 9.10 библиотеку Qt Embedded 4.6.2
./configure -prefix /home/kapa/Qt -embedded arm -xplatform qws/linux-arm-g++ -v -qvfb -little-endian
-depths 8,16,24 -no-gfx-qvfb -no-gfx-multiscreen -qt-gfx-linuxfb -qt-gif -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype
-no-webkit -no-cups -no-javascript-jit -no-script

Использую компилятор arm-linux-gcc-4.1.1-920t.tar.bz2

Затем собрал простенькое приложение. Залил его на флешку.
Скопировал всю папку Qt на флешку.

Включил Тион-Про. Вставил флешку.

Для отладки, к тиону через переходник подключен обычный 19-дюймовый VGA-монитор.

export QTDIR=/mnt/flash/Qt
export LD_LIBRARY_PATH=$QTDIR/lib
export QWS_DISPLAY=LinuxFb
export QWS_SW_CURSOR=0
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice

/mnt/flash/App/app -qws

Думает пару секунд и выкидывает "Segmentation fault"

Подскажите, пожалуйста, в чем может быть проблема?!
« Последнее редактирование: 26 Мая, 2010, 00:07:53 от kapa77 »
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #5 : 26 Мая, 2010, 08:25:50 »

1. Приведите лог сборки вашей программы.
2. Исходный код программы.
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: QT4 и Тион-Про
« Ответ #6 : 26 Мая, 2010, 12:19:58 »

Думает пару секунд и выкидывает "Segmentation fault"

Подскажите, пожалуйста, в чем может быть проблема?!
segfault - это скорее всего неявные ошибки в программе.
Соберите QT 4.6.2 под хост-системой и отладьте приложение под ней.
Если все работает - собирайте для Тиона.

ЗЫ: После того, как наши програмеры отладятся на хосте
собираю примерно так (правда QT 4.5.2 - но это не важно):
#!/bin/bash

/home/faa/CRUS/dev/build/qt-embedded-linux-opensource-src-4.5.2/bin/qmake \
        -spec /home/faa/CRUS/dev/build/qt-embedded-linux-opensource-src-4.5.2/mkspecs/qws/linux-arm-g++ \
        -unix \
        -o Makefile.arm proga.pro
make -f Makefile.arm clean
make -f Makefile.arm
Далее кладем proga на nfs и проверяем.
Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #7 : 26 Мая, 2010, 12:34:41 »

1. Приведите лог сборки вашей программы.
2. Исходный код программы.

Исходный код
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();

}

Лог
Running build steps for project Hello...
Starting: /home/kapa/Qt-Embedded-arm-2/bin/qmake /home/kapa/Documents/Projects/Hello/Hello.pro -spec /home/kapa/Qt-Embedded-arm-2/mkspecs/qws/linux-arm-g++ -r CONFIG+=debug
Exited with code 0.
Starting: /usr/bin/make -w
make: Entering directory `/home/kapa/Documents/Projects/Hello'
arm-linux-g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt-Embedded-arm-2/mkspecs/qws/linux-arm-g++ -I. -I../../../Qt-Embedded-arm-2/include/QtCore -I../../../Qt-Embedded-arm-2/include/QtNetwork -I../../../Qt-Embedded-arm-2/include/QtGui -I../../../Qt-Embedded-arm-2/include -I. -I. -o hello.o hello.cpp
arm-linux-g++ -Wl,-rpath,/home/kapa/Qt-Embedded-arm-2/lib -o Hello hello.o -L/home/kapa/Qt-Embedded-arm-2/lib -lQtGui -L/home/kapa/Qt-Embedded-arm-2/lib -lQtNetwork -lQtCore -lpthread
make: Leaving directory `/home/kapa/Documents/Projects/Hello'
Exited with code 0.

А здесь не может быть проблема в версии компилятора? Может для данного Тиона нужно использовать другой компилятор?

Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #8 : 26 Мая, 2010, 12:39:52 »

segfault - это скорее всего неявные ошибки в программе.
Соберите QT 4.6.2 под хост-системой и отладьте приложение под ней.
Если все работает - собирайте для Тиона.

Ну я уже пробовал собирать под хост системой - все в порядке-собирается, запускается.
Потом собираю под АРМ. Увы, не пробовал запустить с помощью виртуального фреймбуфера, так как не удается его скомпилировать.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #9 : 26 Мая, 2010, 13:14:37 »

А здесь не может быть проблема в версии компилятора? Может для данного Тиона нужно использовать другой компилятор?

1. На Тион-Про библиотеки той-же версии, что и в cross-компиляторе и Qt?
2. Если собирать со -static ошибка такая же?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #10 : 26 Мая, 2010, 13:20:01 »

Без -static, попробуйте -ldl
Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #11 : 26 Мая, 2010, 13:48:00 »

1. На Тион-Про библиотеки той-же версии, что и в cross-компиляторе и Qt?

НА счет библиотек в кросс-компиляторе я не понял. Это как узнать?

После того, как я собрал Qt Embedded, я скопировал всю папку Qt на флешку. При этом подпапка lib копировалась не полностью, так как кидал ошибку, что-то типа не может создать symlink на ряд библиотек, в том числе libQtGui.so.4.  В итоге, папку lib я скопировал на флешку из исходной папки (в которую разархивировал скаченный архив Qt).

Затем на Тионе:
export QTDIR=/mnt/flash/Qt
export LD_LIBRARY_PATH=$QTDIR/lib

2. Если собирать со -static ошибка такая же?

да, ошибка такая же.

Без -static, попробуйте -ldl

это где такую опцию указывать? при запуске прогрммы на Тионе??
/mnt/flash/App # ./app -ldl

та же ошибка
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: QT4 и Тион-Про
« Ответ #12 : 26 Мая, 2010, 15:04:18 »

> это где такую опцию указывать? при запуске прогрммы на Тионе??
> /mnt/flash/App # ./app -ldl

Нет, при сборке.

На Тион-Про есть strace? Сделайте так
strace ./app -qws 2>&1 > out.log

Полученные log.out прведите здесь.


> ошибку, что-то типа не может создать symlink на ряд библиотек

На USB-Flash делайте файловую систему ext2 или ext3.

Ваша программа работает на QT из Buildroot, соотв. и комплятор/библиотеки из Buildroot.
Если нужно QT4, я бы использовал Buildroot.
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: QT4 и Тион-Про
« Ответ #13 : 30 Мая, 2010, 09:57:09 »


Если нужно QT4, я бы использовал Buildroot.

QT4 к crater тоже прикручивается легко ftp://ftp.ntcsm.ru/pub/tion9315/qtembed.mk.
Ну и config.in-ы подправить надо.
Записан

kapa77

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: QT4 и Тион-Про
« Ответ #14 : 02 Июня, 2010, 17:11:01 »

Пока не пробовал использовать Buildroot.

Для начала меня смущает то, что не удается запустить файл, собранный со -static. Насколько я понимаю, при сборке Qt со -static, и последующем билде программы, исполняемому файлу больше ничего не нужно на Тионе? Я прав?

Не может ли все-таки быть, что проблема связана с неправильной установкой переменных окружения??
Я делаю так:
export QTDIR=/mnt/flash/Qt
export LD_LIBRARY_PATH=$QTDIR/lib
export QWS_DISPLAY=LinuxFb
export QWS_SW_CURSOR=0
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice

Без первых двух строк, когда статическое приложение.
Записан