LINUX.ORG.RU

Установка QT для ARM

 ,


0

1

Уважаемые ! Подскажите пожалуйста по такому вопросу. Поставили задачу: на pcduino (чип Allwinner A10, ubuntu на борту) написать графическое приложение, работающее с gpio ардуино. Для разработки интерфейса выбрал QT под Windows. Подскажите пожалуйста как правильно установить и настроить QTCreator под windows для того чтобы он компилировал и отлаживал код под ubuntu на проце ARM? Может есть статья или какой-то мануал ? Все, что находил в сети не подходит, или много битых ссылок на тулчейны, или подходит только для x86. Помогите с советом или поделитесь опытом уже 3-ю неделю бьюсь с этим вопросом.


Подскажите пожалуйста как правильно установить и настроить QTCreator

поставить Linux, можно даже виртуалку попробовать, если доверяешь пробросу USB, поставить тулчейн, поставить QtCreator.

3-ю неделю бьюсь с этим вопросом

вон из профессии

dib2 ★★★★★ ()
Последнее исправление: dib2 (всего исправлений: 1 )
Ответ на: комментарий от dib2

вон из профессии

Ну началось, в принципе, я не удивлен, ну да ладно.

поставить тулчейн, поставить QtCreator

А по подробнее, какой тулчейн лучше ставить ?

TeX ()
Ответ на: комментарий от CrossFire

Стоит поставить Qt Creator из репозитория Ubuntu на устройстве?

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

TeX ()

ставь все отдельно, прописывай пути в PATH и сценарии сборки, все должно заработать.

aiqu6Ait ★★★ ()
Ответ на: комментарий от TeX

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

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

CrossFire ★★★★★ ()

Чтобы скомпилировать проект на ARM нужно:

1) Проект должен быть чистым, без файла Makefile, без файла user и вообще без каких-либо временных или специфичных для конкретного ПК и его ОС файлов. Подобное достигается использованием систем контроля версии, которые исключают попадание временных файлов с машины на машину. Либо вручную можешь чистить, но медаль за этот бессмысленный труд не дадут.

2) Чтобы собрать проект Qt на ПК с Ubuntu и ARM можно обойтись без Qt Creator. Просто установить g++, build-essential и -dev пакеты для Qt (4 или 5) и выполнить команду qmake, затем make - всё, проект собран.

Помогите с советом или поделитесь опытом уже 3-ю неделю бьюсь с этим вопросом.

Стыдно... Я на полном серьезе не понимаю чем отличается установка Qt Creator на Ubuntu для x86 или arm, сколько раз делал - разницы вообще не заметил. sudo apt-get install qtcreator

P.S.

Отладка потом, сначала этот шаг, первый.

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 3 )
Ответ на: комментарий от TERRANZ

Спасибо всем, кто откликается по существу.

Стыдно... Я на полном серьезе не понимаю чем отличается установка Qt Creator на Ubuntu для x86 или arm, сколько раз делал - разницы вообще не заметил. sudo apt-get install qtcreator

Мне не стыдно спросить, т.к. я с этой темой работаю всего несколько дней, и я знаю ка на Ubuntu поставить пакеты и креатор. Меня интересует, как собрать все это дело под виндой, от какой фирмы лучше взять тулчейн и вообще есть ли разница между разными тулчейнами, как его правильно прописать в креаторе и настроить окружение для всего этого. Теперь для тех, кто не по существу пишет.

вон из профессии

Еще один шпециалист по трудоустройству нашелся. Стыдно должно быть за неконструктивные сообщения. Если ты не в курсе, то тулчейнов для сборки под ARM существует множество от разных фирм и сообществ, и если ты не в курсе- то это ты ВОН из профессии.

Да вы все заебали QuickTime ставить! Выучи, как фреймворк называется

Смотри, тЁлка, а туда же. Начнем переписку грамаррнации и задротов. Всем, кто не по делу пишет - всем в сад.

TeX ()
Ответ на: комментарий от TeX

Меня интересует, как собрать все это дело под виндой, от какой фирмы лучше взять тулчейн и вообще есть ли разница между разными тулчейнами, как его правильно прописать в креаторе и настроить окружение для всего этого.

Ааа... Под виндой и сразу под ARM. Что ж, прошу прощения, я как-то прохлопал эту важную деталь.

Для начала можно посоветовать поставить виртуальную машину с Ubuntu x86 внутри винды - там есть готовые ARM тулчейны прямо в пакетном менеджере. Уверен, шансы собрать программу на Qt для Ubuntu/ARM выше в среде самой Ubuntu x86. Более того, отлаживать программу для Ubuntu ARM проще сделать из Ubuntu x86 а не из винды.

Кроме того, когда собирается программа на Qt она же еще системные библиотеки хочет (а их рядовая программа на Qt хочет не мало под Linux), а стало быть окружение должно быть полноценно.

Как бы поступил я? Я предпочитаю отлаживать программы обильным принтингом и логгированием. Я бы разрабатывал программу на винде, эмулируя простыми программными заглушками то что недоступно, типа GPIO и тому подобное. Затем по системе контроля версий затягивал бы апдейты из винды и собирал бы прямо на pcduino, и запустив - увидел бы отладочные сообщения прямо в консоли.

I-Love-Microsoft ★★★★★ ()

Добавлю что... если программа падает, то поможет старый добрый GDB в консоли - сразу покажет где чо упало. Можно даже прикрутить крэш-дампер какой-нить и анализировать эти дампы (ну, предварительно потренировавшись на искусственно созданных рукотворных крэшах).

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1 )
Ответ на: комментарий от TeX

Стыдно должно быть за неконструктивные сообщения

стыдно девелоперу метящему в кросс-платформ не осилить Linux за 3 недели и принести это на ЛОР.

Если ты не в курсе, то тулчейнов для сборки под ARM существует

ну так возьми и удосужься узнать, каким тулчейном собрана ОС на твоей железяке, такой же нужен и тебе (apt-cache search в помощь). Телепаты вам не по карману.

Начнем переписку грамаррнации и задротов

в сад здесь идут в первую очередь вантузоиды, неспособные 2 буквы с примера правильно переписать.

dib2 ★★★★★ ()

Узнавай, как и чем собраны бинари в твоей прошивке, вплоть до libc, скачивай (или собирай) такой же тулчейн под винду, потом кросс-компилируй им Qt, потом цепляй всё это в виндовый Qt Creator и пользуйся.

EXL ★★★★★ ()
Ответ на: комментарий от TeX

множество от разных фирм и сообществ, и если ты не в курсе- то это ты ВОН из профессии.

ты какой-то странный
у тебя конкретная железка, для неё есть один конкретный тулчейн, какие ещё множества?

TERRANZ ★★★★ ()

Ставте линукс (хотя бы в виртуалку). Качаете компилятор Arm-None-linux-gnueabi (или CodeSourcery). Качаете qt-everywhere нужной вам версии. С помощью указаного выше компилятора (точнее кросскомпилятора) собираете qt и потом собираете прогу на этом Qt.

Если надо копируете собранные вами библиотеки на устройство.

Теоретически все вышеперечисленное можно сделать и под виндой, но я в инете не натыкался на истории успеха такого мероприятия. (да и вообще, работать с линуксом из под линукса гораздо удобнее).

RiseOfDeath ★★★★ ()
Последнее исправление: RiseOfDeath (всего исправлений: 2 )

Разобрался немного со всем этим делом. Посмотрел на железке использовался arm-none-linux-gnueabihf компилятор. Скачал тулчейн от Linaro gcc-linaro-arm-linux-gnueabihf-4.9-2014.09-20140911_win32.exe, установил, прописал в переменные окружения. Скачал автоматический установщик MinGW, отметил что нужно ставить и он сам все скачал, установил, прописал в переменные среды. Аналогично с Python и Perl.

ActivePython 2.7.8.10 (ActiveState Software Inc.) based on
Python 2.7.8 (default, Jul  2 2014, 19:48:49) [MSC v.1500 64 bit (AMD64)] on win32

This is perl 5, version 20, subversion 1 (v5.20.1) built for MSWin32-x64-multi-thread

Скачал исходники Qt qt-everywhere-opensource-src-5.4.0.zip, распаковал с папку c:\qt5401. Далее конфигурирую:

c:\qt5401>configure -debug-and-release -opensource -confirm-license -embedded -neon -opengl desktop -platform win32-g++ -xplatform linux-arm-gnueabihf-g++ -nomake examples -nomake tests
Конфигурирование проходит без ошибок, выводит следующие сообщения.
Creating qmake...
mingw32-make: Nothing to be done for 'first'.
Running configuration tests...
Environment:
    INCLUDE=
      Unset
    LIB=
      Unset
    PATH=
      C:\Perl64\site\bin
      C:\Perl64\bin
      C:\Python27\
      C:\Python27\Scripts
      C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
      C:\Windows\system32
      C:\Windows
      C:\Windows\System32\Wbem
      C:\Windows\System32\WindowsPowerShell\v1.0\
      C:\Program Files (x86)\QuickTime\QTSystem\
      C:\linaro\bin\
      c:\MinGW\bin\
      c:\MinGW\msys\1.0\bin\
Configuration:
    pcre
    debug
    compile_examples
    cross_compile
Qt Configuration:
    minimal-config
    small-config
    medium-config
    large-config
    full-config
    debug_and_release build_all release
    debug
    c++11
    shared
    zlib
    png
    freetype
    harfbuzz
    build_all
    accessibility
    opengl
    audio-backend
    native-gestures
    qpa
    eventfd
    concurrent
    rpath

QMAKESPEC...................linux-arm-gnueabihf-g++ (commandline)
Architecture................arm, features:
Host Architecture...........i386, features:
Maketool....................mingw32-make
Debug build.................yes (combined)
Default build...............debug
Force debug info............no
C++11 support...............yes
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................no
SSE3 support................no
SSSE3 support...............no
SSE4.1 support..............no
SSE4.2 support..............no
AVX support.................no
AVX2 support................no
NEON support................yes
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........yes
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................no
OpenSSL support.............no
Qt D-Bus support............no
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........no
Use system proxies..........no

QPA Backends:
    GDI.....................yes
    Direct2D................no

Third Party Libraries:
    ZLIB support............qt
    GIF support.............plugin
    JPEG support............plugin
    PNG support.............yes
    FreeType support........yes
    Fontconfig support......no
    HarfBuzz support........qt
    PCRE support............qt
    ICU support.............no
    ANGLE...................no
    Dynamic OpenGL..........no

Styles:
    Windows.................yes
    Windows XP..............no
    Windows Vista...........no
    Fusion..................yes
    Windows CE..............no
    Windows Mobile..........no

Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................plugin (qt)
    SQLite2.................no
    InterBase...............no

Sources are in..............C:\qt5401\qtbase
Build is done in............C:\qt5401\qtbase
Install prefix..............C:\qt5401\qtbase
Headers installed to........C:\qt5401\qtbase\include
Libraries installed to......C:\qt5401\qtbase\lib
Arch-dep. data to...........C:\qt5401\qtbase
Plugins installed to........C:\qt5401\qtbase\plugins
Library execs installed to..C:\qt5401\qtbase\bin
QML1 imports installed to...C:\qt5401\qtbase\imports
QML2 imports installed to...C:\qt5401\qtbase\qml
Binaries installed to.......C:\qt5401\qtbase\bin
Arch-indep. data to.........C:\qt5401\qtbase
Docs installed to...........C:\qt5401\qtbase\doc
Translations installed to...C:\qt5401\qtbase\translations
Examples installed to.......C:\qt5401\qtbase\examples
Tests installed to..........C:\qt5401\qtbase\tests



Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.


c:\qt5401>
Запускаю
c:\qt5401>mingw32-make
или
c:\qt5401>mingw32-make sub-src
и тут постигает неудача, решение которой не могу найти.Сначала идет отсечет до какого-то значения а потом в обратном направлении ошибки или же бывает выаливаются в середине ошибки. Вот как-то так:
mingw32-make[202]: Entering directory 'c:/qt5401'
mingw32-make[203]: Entering directory 'c:/qt5401'
mingw32-make[204]: Entering directory 'c:/qt5401'
      0 [main] sh 12620 sync_with_child: child 16688(0x2224) died before initial
ization with status code 0xC0000142
    386 [main] sh 12620 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
Makefile:70: recipe for target 'module-qtbase-make_first' failed
mingw32-make[204]: *** [module-qtbase-make_first] Error 128
mingw32-make[204]: Leaving directory 'c:/qt5401'
Makefile:70: recipe for target 'module-qtbase-make_first' failed
mingw32-make[203]: *** [module-qtbase-make_first] Error 2
mingw32-make[203]: Leaving directory 'c:/qt5401'
Makefile:70: recipe for target 'module-qtbase-make_first' failed
mingw32-make[202]: *** [module-qtbase-make_first] Error 2
mingw32-make[202]: Leaving directory 'c:/qt5401'
Makefile:70: recipe for target 'module-qtbase-make_first' failed
Помогите советом, в чем дело ? P.S. После конфигурирования появляется файл qmake, может и не нужно дальше мучиться и его подключить к QtCreator, или это не тот qmake ?

TeX ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.