Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51 Ставим Qtopia (qt) - Embedded Linux - Форум - starterkit.ru
Дело обстоит так... Ядро собирал последнее linux-2.6.35-sk от sasamy, компилятором freescale gcc-4.1.2-glibc-2.5-nptl-3, им же собиралось и все остальное. buildroot-2010.11 как я уже говорил. В нем выбираю Qt. GUI 32bit, шрифты все кроме японского, Qt freetype2, JPEG Qt, zLib Qt, только Framebuffer, только tslib, без клавиатуры. Собираю, закидываю на плату. В QT Creator выбираю пример, подключаю полученный qmake, собираю, кидаю на плату. Запускаю с параметром -qws. Мелькает стрелка - и привет, Segmentation fault.
Все вроде верно. Соберите strace - она есть в buildroot. Выхлоп ее конечно сложнеоват но это лучше чем искать иголку в стоге сена. Возможная приччина - скопированы не все либы libc из тулчейна. Не долюбливаю фрискейловские инструменты - ltib ихний (вернее он не их - выбор их ltib в качестве системы сборки) вообще пипец какой-то. Тулчейном ихним ниразу не пользовался.
вчитался в предыдущее сообщение и понял. для Qt 4.5 и выше (buildroot использует помойму версию Qt 4.6.x) нужен gcc версии 4.3 или даже выше, а у вас 4.1.2.... дело скорей всего в немю buildroot позволяет собрать 4.3 и выше
Да в целом то ltib не плох, но мне, почему то, buildroot больше понравился. Собирал я и тулчейном из buildroot - результат был тот же. Пока оставил от ltib, время покажет.
Я запустил на плате в отладке при помощи GDB Qt пример mousecalibration, и он падает на строчке - message.setText("...")
Что выдал strace я пока изучаю. Чую с шрифтами дело не чисто.
положите его в buildroot-2010.11/package/qt/ и пересоберите qt - просто грохнуть директорию buildroot-2010.11/output/build/qt-everywhere-opensource-src-4.7.1 и потом make в корне buildroot-2010.11.
Итак... Отчет о проделанной работе...
Выполнил я в точности как посоветовал sasamy, только правда сделал полную чистку, на всякий случай, и о чудо - все заработало! Тулчейн по прежнему от freescale.
Огромное спасибо всем кто принимал участие в решении проблеммы, ну особенно - респект sasamy.
чуть пощупал эту "кутопию"..
в оффлайне (без инета) собрал кросскомпилером пакет Qt4(qtopia-core-opensource-src-4.3.3.tar.gz), мелкие демки пошли, чуть что покруче - выпадали с криками..
уже потом, почитав совет Саши, поставил strace, увидел чего не хватает..
дальше копать не стал, сказал apt-get install qt4-demos
само вытянулось, поставилось, запускабельно:
А кто-нибудь с талкивался с проблемой компиляции (пробовал на examples и demos и собственное простое приложение с диалогом и лейблом) - выдает ошибку undefine reference q_atomic_lock()
Собирал QTopia по мануалу nuvoton... единственное что добавил два ключа - nomake demos -nomake example - по причине того что они не собирались. Но я так понимаю что самое простое приложение должно собраться?
UPD: тут обратил внимание - после того как выполняется configure выскакивает сообщение что текущая платформа не поддерживает атомарные операции и все что их использует работать не будет. Я похоже что-то не понимаю, потому что даже простенький вызов окошка использует q_atomic_lock.
UPD: платформа NUC950
UPD: разобрался - при конфигурировании флаги касающиеся платформы и little-endian указал неправильно...