Russian Qt Forum
Ноябрь 25, 2024, 04:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: qtCreator cross compiling raspberry from windows  (Прочитано 23957 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Апрель 08, 2018, 20:27 »

У меня есть кросскомпилятор, из Eclipse собираю кросскопилированные приложения, заливаю в малину и запускаю/дебажу.

Как настроить QtCreator на Windows (7/8/10), для кросскомпиляции для малины?
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #1 : Апрель 08, 2018, 23:19 »

Боюсь увести дискуссию в сторону, но хочется узнать, в чем преимущество кросс-компиляции от сборки на самой малине? Только экономия времени или что еще?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Апрель 09, 2018, 06:34 »

а как такая технология работает?

Вот есть малина (причем не одна... а несколько). Они все удалены и по VPN сидят в одной сетке. Нужно на малину поставить эээээээ.... а что поставить? Библиотеки Qt в полный рост!? поставить gcс, make, и т.п. Потом нужно натравить как-то QtCreator с десктопа на малину. ээээ.... что дальше? Где должны быть сырцы проекта? Наверно на малине. редактиру. *.срр на десктопе, которые лежат на малине, запускаю сборку.... как-то на малине должна быть запущена сборка.... отладка.... и т.д. Чото какаята атская штука.

И ещё.... малин несколько... если по моему пути идти, то можно просто ip таргета в настройка креатора менять и работать отлаживаться то на одной, то на другой (что я и делаю без Qt).

ps Ещё есть всякие linux девайсы, например такой. Там нет ни иксов, ни видяхи. Там озу 64 МГб, как там на таргете собирать/отлаживаться?

Я пишу для малины без Qt, Еclipse настроил на десктопе и кросскомпилирую. Всё работает. Не только для малины, но и для девайсов, типа роутера, у которых тоже озу всего 64Мгб. Не думаю, что туда встанет тулчейн.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Апрель 09, 2018, 11:00 »

Не обязательно иметь иксы, чтобы собрать на малине. Достаточно qmake и make. Первый создаст Makefile, а второй по нему соберёт. Естественно, qmake может потребоваться передать некоторые параметры.

Я бы в этой ситуации  предпочёл иметь git репозиторий, к которому имеют доступ все малины. Таким образом можно настроить автоскачивание (по таймеру) из определённой ветки и запуск сборки.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #4 : Апрель 09, 2018, 11:30 »

2__Heaven__ не очень понятно ваше предложение.....

вы предлагаете поставить на малину в полный рост qt-develop. на десктопе писать исходники через говноgit с десктопа перекидывать на малину и собирать на малине? Извращение!!! 100 лет назад придумали для таких целей кросс-компиляцию.

Вы представляете как это будет работать?

Мой вариант:
1) Пишем на десктопе текст.
2)Жмём кнопку - Run/Debug (прога собирается, отправляется на малину, запускается, если надо то под отладчиком)
3)goto 1

Ваш вариант
Поднимаем Qt-develop вместе с gcc/гитами/питонами и прочими тулчейнами на малине (или на роутере с 64 мб озу и с ограниченным по размерам HD, на малину бы влез во весь рост Qt)
1) пишем текст на десктопе
2) КОММИТИМ!!!
3) ПУШИМ!!!
4) Заходим по ssh на малину
5) git pull
6) qmake
7) make
8 ) ./myProgram
9 ) goto 1
а как тут дебаг запустить - это отдельная тема.

Вы ещё пошлите QtCreator в топку и предложите писать в vi.

ps 2sergek Вот в чем преимущество кросскомпиляции.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #5 : Апрель 09, 2018, 12:31 »

ps 2sergek Вот в чем преимущество кросскомпиляции.
Спасибо, я понял. Согласен, для роутеров без этого не обойтись. Но речь шла о малине.
Поделюсь, как у меня это организовано.
1) Есть отдельная develop малина с установленным из исходников Qt. Сейчас работаю с 5.7, но пробовал 5.10, все ок. Если понадобятся опции configure, могу сообщить. На этой малине нет иксов, только библиотеки и qmake, и используется она для сборки проекта, т.е., как предлагал __Heaven__.
2) Для тиражирования на другие малины (в продакшн) делается образ системы с библиотеками qt (естественно, без исходников).
3) Разработку и отладку провожу на Creator в windows или ubuntu. Если нужны какие-нибудь особенные устройства, использую эмуляторы.
4) После отладки исходники проекта закидываю на develop малину, делаю qmake, make, а полученные исполняемые файлы раскладываю по остальным малинам. В моих программах есть режим обновления ПО, поэтому изменения проводят сами пользователи, я только рассылаю им файлы обновлений, включающие скрипты обновления БД, шаблоны, js, исполняемые файлы и др.
В перспективе, наверное, это все можно централизовать через git.
С отладкой на реальном железе, конечно, есть проблемы. Изредка приходится использовать qDebug).

Коллеги, как я и боялся, мы уши в сторону - как все же кросс-компиляцию в win10 сделать? Мне тоже интересно.


Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #6 : Апрель 09, 2018, 12:52 »

2sergek
1) сколько на малине места занял qt-develop?

3) Отладку в винде делаете на эмуляторе? Вроде там есть возможность добавить эмулятор малины.... не дошел до этого. Конечно на реальном железе лучше отлаживать. Я пишу не БД и не матАнализ... у меня малина GPIO и SPI дергает, на которых периферия, скорее нужно периферию щуюпать, чем малину.

Почему я не хочу ставить на малину qt - потому что малина, это скорее отладочный kit, на котором хочу научится кросскомпилировать. В дальнейшем планирую свою борду сделать, с минимальным кол-вом ОЗУ/ПЗУ. Или аналог фруктовый заюзать.

Цитировать
как все же кросс-компиляцию в win10 сделать? Мне тоже интересно.
я пошел следующим путём: скачал исходники qt5.10, у меня стоит кросскомпилятор для малины вот от сюда (там же есть и просто arm-eabi, arm-elf). Уже стоит mingw32-make из Qt5.6. Планирую собрать qt на винде для малины. Потом вместе со своей прогой докину полученные в винде либы в малину (или установлю, или вообще статику соберу, это уже не важно).

собираю Qt с конфигом
Код:
configure ^
-prefix d:/soft/qt/qt5.10/build  ^
-platform win32-g++ ^
-device linux-rasp-pi2-g++ ^
-device-option CROSS_COMPILE=D:\SysGCC\Raspberry\bin\arm-linux-gnueabihf- ^
-opensource ^
-confirm-license ^ 
-debug-and-release ^
-shared ^
-no-webkit ^
-plugin-sql-mysql ^
-nomake tests ^
-no-opengl ^
-reduce-exports ^
-no-xcb ^
-qpa linuxfb ^
-force-pkg-config ^
-no-qml-debug ^
-no-directfb ^
-skip qtwebchannel ^
-nomake examples ^
-skip declarative ^
-strip ^
-qt-freetype

пока блин комом
Цитировать
WARNING: Python version 2 (2.7.5 or later) is required to build QtWebEngine.

WARNING: host pkg-config not found

ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_I
NCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your pla
tform.
Питон стоит 2.7, но какойто ворнинг....
 опен_жл отключен, но требует....

делаю в свободное время.... буду дальше разбираться.

sergek покажите свой конфиг?

Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #7 : Апрель 09, 2018, 13:32 »

2sergek
1) сколько на малине места занял qt-develop?
Если речь о библиотеках - то
Код:
du -s /usr/local/Qt-5.7.0
103848  /usr/local/Qt-5.7.0
Ну исходники - везде одинаковые. 4752768. Но их можно удалить.

3) Отладку в винде делаете на эмуляторе? Вроде там есть возможность добавить эмулятор малины.... не дошел до этого. Конечно на реальном железе лучше отлаживать. Я пишу не БД и не матАнализ... у меня малина GPIO и SPI дергает, на которых периферия, скорее нужно периферию щуюпать, чем малину.
Не-не, эмулятор не малины, а периферии, которую "щуюпать". Поэтому есть проблема с SPI, i2C, GPIO - ее отлаживаю только на малине develop. Как раз и хочется попробовать из-за этого кросс.

sergek покажите свой конфиг?
Уберите QtWebEngine, с ним не соберется... Я десяток раз пробовал. Может, если жесткий диск подключить, то и получится. А сейчас я собирал 5.10 по инструкции http://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi , в в предлагаемый там configure добавьте опции   
Код:
-nomake examples -nomake tests -skip qtwebengine -skip qtlocation
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #8 : Апрель 09, 2018, 13:46 »

Большое спасибо за qtwebengine. Я убился, ища отключение webengine. Он мне не нужен, но как отключить не нашел. Вообще очень много, чего в конфигуре можно найти только на ощуп. На ощуп нашел как кросскомпилятор подключить вместо xplatform, какие могут быть xplatform. Вот например хелп по конфигурации выдает
Цитировать
-skip <repo> ......... Exclude an entire repository from the build.
А что можно записать вместо <repo>?  Какие варианты? Как нужно догадаться, то для отключения вэба нужно записать -skip qtwebengine?

Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #9 : Апрель 09, 2018, 13:49 »

не помог -skip qtwebengine (((

Цитировать
Qt WebEngine:
  Embedded build ......................... yes
  Pepper Plugins ......................... no
  Printing and PDF ....................... no
  Proprietary Codecs ..................... no
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. no
  Use System Ninja ....................... no
  Geolocation ............................ yes
  Use v8 snapshot ........................ yes
  Use ALSA ............................... no
  Use PulseAudio ......................... no


Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.

WARNING: Python version 2 (2.7.5 or later) is required to build QtWebEngine.

WARNING: host pkg-config not found

ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_I
NCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your pla
tform.

Check config.log for details.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #10 : Апрель 09, 2018, 14:24 »

Перед конфигурированием не забывайте
Код:
make confclean
Я обычно удаляю все исходники и разворачиваю заново))

Кроме этого, сделайте установку всех пакетов, рекомендованных в инструкции, на которую я давал ссылку, начиная с sudo apt-get update.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #11 : Апрель 09, 2018, 14:37 »

Цитировать
начиная с sudo apt-get update.
вы наверно меня не поняли, я qt для малины собираю не на малине, и не в линуксе, а в Windows7.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #12 : Апрель 09, 2018, 14:48 »

у меня была мысль ПЕРЕКОНФИГУРИРОВАТЬ, т.е. очистить конфиг и запустить... не знаю как очистить конфигурацию....
configure -clean
не работает
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #13 : Апрель 09, 2018, 15:13 »

Для этого служит make confclean
Ну и удаление исходников и новое раворачивание из архива помогает же ))
« Последнее редактирование: Апрель 09, 2018, 15:15 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #14 : Апрель 09, 2018, 15:32 »

Для этого служит make confclean
Код:
D:\soft\Qt\Qt5.10\qt-everywhere-src-5.10.1>mingw32-make confclean
mingw32-make: *** No rule to make target 'confclean'.  Stop.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.