Название: Как настроить QT Creator для компиляции приложений QT5 под ARM Linux в Windows Отправлено: tankist от Июль 21, 2014, 19:37 Мне нужно сделать кросс-компиляцию с QT5 в Windows под платформу ARM Linux. Я нашел много описаний, как настроить Qt Creator в Linux, но ничего для Windows. Я прикрутил среду Harmattan от Qt SDK к QT Creator 3, но он собирает программы с библиотекой QT4. На мой взгляд, самый простой способ состоит в использовании Harmattan от Qt SDK, но мне нужно заставить его использовать библиотеку QT5. Как я понимаю, я должен сделать мой собственный sysroot вместо существующего (harmattan_sysroot_10.2011.34-1_slim). Если мои рассуждения верны, то следуют вопросы:
1) Как мне сделать новый sysroot для Harmattan? 2) Нужно ли мне собрать новый "qmake" для QT5? 3) Где мне взять "make" для QT5 или подойдет старый? 4) Может быть, есть другой способ для достижения моей цели? Название: Re: Как настроить QT Creator для компиляции приложений QT5 под ARM Linux в Windows Отправлено: kuzulis от Июль 21, 2014, 20:52 Цитировать 1) Как мне сделать новый sysroot для Harmattan? ХЗ, читай в доке по SDK от Harmattan, смотри там всякие скрипты. Цитировать 2) Нужно ли мне собрать новый "qmake" для QT5? Да. Он появится после кросс-платформенной пересборки Qt5 с использованием твоего SDK от Harmattan. При этом, екзешка qmake будет скомпилена для хоста (для Винды, и иметь расширение *.exe), т.е. должна запускаться на хосте (например при помощи QtCreator). Но все Qt5-шные *.so-шки будут скомпилены для таргета (формат ARM ELF), ты можешь после кросс-компиляции Qt5 проверить это, просто открыв файлики блокнотом. ;) Таким образом, *.so - шки будут использоваться кросс-компилятором для линковки твоего приложения с Qt5-шными либами, а также эти либы можно скопировать на таргет и пользоваться ими там (вместе с твоим приложением). Цитировать 3) Где мне взять "make" для QT5 или подойдет старый? Make - это утилита из SDK (она должна уже там быть, поищи). Хотя, можно воспользоваться любой make.exe (хоть от MinGW, хоть другой). Цитировать 4) Может быть, есть другой способ для достижения моей цели? Не факт. В общем, процесс таков: 1. Пересобрать Qt5 из сорцов, используя кросс-компилятор (ARM) от твоего SDK от Harmattan. В гугле достаточно много инфы где описывается этот процесс (как указать кросс-компилятор, как модифицировать mkspec и пр.). Если у тебя имеется SDK (набор toolchains и прочего) под Windows - то проблем нет. 2. После успешной пересборки Qt5 - запустить QtCreator и создать отдельный Kit (указать путь к кросс-компилятору, отладчику (если нужно), к qmake твоей кросс-компилированной Qt5 и пр.). 3. Создать в QtCreator любой пустой проект (или по-минимуму что-то), выбрать новый Kit и попробовать пересобрать проект. Если все ок, то далее, для Deploy приложения можно использовать кучу методов.. Для начала - попробовать скопировать скомпиленное приложение на Harmattan (например, в каталог /home/user/myapp), туда-же скопировать все твои кросс-компиленные Qt5-шные *.so-шки и прочее... Запускать приложение через скрипт с LD_LIBRARY_PATH. Если все пройдет успешно - тогда можно создать уже "инсталлятор" приложения (я не знаю, есть ли в Harmattan какие-нить пакетные менеджеры). ИМХО, я бы сделал инсталляционный пакет по типу (как делают в винде), т.е. устанавливал приложение в директорию /home/user/app и ложил все что нужно (библиотеки и прочую муть) туда-же. Хотя, тут все зависит от задач. PS: Ты бы сначала попробовал делать, а потом уже спрашивал.. ;) Название: Re: Как настроить QT Creator для компиляции приложенl Отправлено: tankist от Июль 21, 2014, 23:49 Цитировать PS: Ты бы сначала попробовал делать, а потом уже спрашивал.. Я как бы не совсем новичок в кроссплатформенном программировании - мной было написано порядка 10 проектов с QT4 под ARM, но в том случае я использовал готовую qtopia. Опыт сборки библиотек QT5 также имеется, но под linux (то есть библиотеки я уже можно сказать собрал). По вашему описанию я не понял момент: для кроссплатформенной сборки я использую компиляторы CodeSoursery от Mentor Graphics. Соответственно, собрав с помощью них исходники QT, я получу библиотеки ARM. Каким образом мне собирать qmake? Название: Re: Как настроить QT Creator для компиляции приложений QT5 под ARM Linux в Windows Отправлено: kuzulis от Июль 21, 2014, 23:59 Цитировать Каким образом мне собирать qmake? Оно все само соберется при сборке Qt! Установи и посмотри для примера виндовую сборку для Android: какие там экзешки, *.so-шки и прочее.. У тебя должно получиться примерно так-же. Цитировать Соответственно, собрав с помощью них исходники QT, я получу библиотеки ARM Да. Но там нужно указывать наверно и путь к rootfs/lib (или как то так).. Хотя не уверен. Нужно пробовать на практике и смотреть на что оно будет ругаться при сборке самого Qt5. Цитировать Опыт сборки библиотек QT5 также имеется, но под linux (то есть библиотеки я уже можно сказать собрал). Как так, Qt собирал, а откуда берется qmake не известно? ;) UPD: Ну и если под Windows будет тяжко все это сделать, то ИМХО - проще установить на виртуалку Ubuntu (или что-там), найти и установить ARM тулчейн и не париться. :) Название: Re: Как настроить QT Creator для компиляции приложений QT5 под ARM Linux в Windows Отправлено: tankist от Июль 22, 2014, 21:43 Цитировать Как так, Qt собирал, а откуда берется qmake не известно? Увы мне, я не ставил задачу детально разбираться как собирается Qt, так как моя задача - разработка проектов под Qt, а восе не сборка их библиотек. Погуглив, выполнил нехитрый алгоритм: скачал исходники Qt с git -> запустил configure с набором параметров -> запустил make -> устранил кучу ошибок -> запустил make -> понял, что столько ошибок не устранить -> отказался от сборки webkit -> запустил make -> прождал несколько часов -> запустил make install -> забрал из целевой корневой системы библиотеки и всякие сопутствующие файлы -> скопировал на ARM устройство. В каталоге git после сборки нашел один файл qmake (исполнимый файл для x86 Linux), но был ли он там изначально, или собрался - я не знаю. Собрали бы разработчики сразу библиотеки под 100500 платформ - меньше было бы головной боли.И раз уж я собрал эти библиотеки, я так понимаю, что они подойдут и в мой SDK под Windows? Можно ли тогда отдельно собрать один qmake? Цитировать проще установить на виртуалку Ubuntu Увы, и такое имеется. Только, видимо, что-то мне неймется, я думал, будет достаточно просто сделать свой SDK под Windows. :(Название: Re: Как настроить QT Creator для компиляции приложений QT5 под ARM Linux в Windows Отправлено: tankist от Июль 30, 2014, 19:55 Начал собирать библиотеки под WIndows, но столкнулся с проблемой: процесс make завершается крахом со следующим сообщением:
Код: This is the Qt for Windows Open Source Edition. Часть Makefile: Код:
|