Сборка QT5 для Windows из под Linux (Сборка библиотеки QT5 для Windows из под Linux)

Модератор: Модераторы разделов

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Кто-нибудь пробовал собирать Qt5 из под linux?
Если да, то каково поведение собранных приложений в винде? Например я ранее собирал wxvidgets для windows, но вид собранных окон в винде был таким, как будто приложение запускается в windows95.
Под Gentoo собрал mingw, через crossdev:

Shell

# crossdev --target x86_64-w64-mingw32
Взял исходник от сюда - qt-everywhere-src-5.12.9.zip
Вроде накатал примерный скрипт для сборки qt5, пока жду результата сборки. Вот и интересно стало, если кто пробовал Qt5 собирать, то удавалось ли добиться нормального отображения собранных окон.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

Я собирал. А вид будет такой, какой вы его сделаете. Штатно, стилей там будет всего два. И оба корявые. Кастомизируйте самостоятельно и будет вам счастье. :)
Кстати, если уж так надо собирать в linux для оффтопика - проще запустить wine, в нём запустить родной виндовый инсталлятр Qt5 и в нём же всё и собирать. Проще, как по времени, так и по необходимым телодвижениям. Лично я как раз к такому в результате и пришёл.
Ну, либо виртуалка с оффтопиком, а в нём уже Qt5. Тоже вполне себе, за исключением необходимости лицензии на оффтопик.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Та уже вроде более менее разобрался со скриптом 124 dll-ки собралось, если нормально пройдёт make install, то будет уже почти хорошо, а если с моими изменениями mkspecs, нормально заработает qmake, то будет вообще хорошо. Я когда на винде, пытаюсь что либо собрать, у меня очучение, что пытаюсь в сапогах плавать.Терминал ужасно неудобный, хотя скорее всего именно по этому в винде пользуется большой популярностью far и total commander. В винде без IDE оч тяжело что либо собирать.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

А зачем вы это всё делаете? Просто интересно.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
03.09.2020 22:16
А зачем вы это всё делаете? Просто интересно.
Да так ни чего особого, решил попробовать собрать, на винде у меня та же версия стоит. Решил попробовать собрать драйвер mysql в связке с mariadb и попробовать добавить его в винду, под linux мне будет удобней, за одно глянуть как в qt5 обстоят дела с окнами. Ну а тестировать проги можно и под вайном.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

ormorph писал(а):
03.09.2020 22:24
Ну а тестировать проги можно и под вайном.
Если программа будет (вдруг) работать с "железом" (допустим с RS-232), то лучше в живом оффтопике. С вайном бывают чудеса с этим. Я как то на грабли наступил.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Пока собрать удалось, но установить нет, потом посмотрю флаги mingw, ругается на -lpthread, которого нет.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

Это dev-libs/libpthread-stubs ?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
04.09.2020 11:04
Это dev-libs/libpthread-stubs ?
Вечером гляну, что там к чему.
Но вроде как это должно быть в mingw-w64-runtime .
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сборка QT5 для Windows из под Linux

Сообщение Bizdelnick »

ormorph писал(а):
04.09.2020 11:45
вроде как это должно быть в mingw-w64-runtime .
Откуда там pthread? Не должно его быть, что-то сконфигурилось неправильно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Bizdelnick писал:
04.09.2020 12:58
Откуда там pthread? Не должно его быть, что-то сконфигурилось неправильно.
А тут ни кто ни чего и не утверждает, лучше бы посоветовал где его взять.
А так вроде нашел рецепты тыц, вечером буду пробовать.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сборка QT5 для Windows из под Linux

Сообщение Bizdelnick »

ormorph писал(а):
04.09.2020 13:12
лучше бы посоветовал где его взять
Нигде. Нет в винде никакого pthread и отродясь не было. Если Qt под винду пытается с ним слинковаться, значит он неправильно сконфигурирован.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Bizdelnick писал:
04.09.2020 13:20
Если Qt под винду пытается с ним слинковаться, значит он неправильно сконфигурирован.
Все может быть, я правил файлы в конфигах mkspecs, менял названия gcc и т.п., дальше попробую сделать симлинки в определенный каталог и подключить его как тулчейн в qt,вроде так правильней. Если повторится, то посмотрим , может получится получить pthread.dll.
А так от куда ему в винде взяться это же POSIX threads, но в mingw вполне может.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Все таки удалось собрать библиотеку. Попробовал собрать под нее приложение, собралось. Запустилось под вайном, но на этом радость закончилась.
Как только копирую на win раздел(Fat, NTFS), как приложение под вайном перестаёт запускаться. Под виндой тоже не запускается, под 64 битной виндой ругается на Qt5Core.dll. Под 32 битной виндой ругается что собрано не для этой системы.

Shell

$ objdump -f Qt5Core.dll

Qt5Core.dll: формат файла pei-x86-64
архитектура: i386:x86-64, флаги 0x00000103:
HAS_RELOC, EXEC_P, D_PAGED
начальный адрес 0x0000000066741350
Я в ауте, получается собранный crossdev компилятор не чистый 32 битный. Может завязка на mingw-runtime.
Команду сборки через crossdev уже прилагал выше.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сборка QT5 для Windows из под Linux

Сообщение Bizdelnick »

ormorph писал(а):
06.09.2020 06:09
компилятор не чистый 32 битный
GCC не собирается как «чисто 32-битный» или «чисто 64-битный». (Не хватало там ещё и такого разделения, хватит того, что для каждой целевой ISA отдельно собирать надо.) Это регулируется флагами -m32 и -m64. А что там за PEI, в котором сразу две архитектуры, как они делаются и какими виндами поддерживаются, я вообще не в теме.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Bizdelnick писал:
06.09.2020 10:34
GCC не собирается как «чисто 32-битный» или «чисто 64-битный». (Не хватало там ещё и такого разделения, хватит того, что для каждой целевой ISA отдельно собирать надо.) Это регулируется флагами -m32 и -m64. А что там за PEI, в котором сразу две архитектуры, как они делаются и какими виндами поддерживаются, я вообще не в теме.
Потом попробую с флагами -m32, -m64 поиграться, может чего изменится. Раньше такое не прокатывало, но тут виною было не gcc а mingw-runtime. Если не получится попробую собрать указав другую целевую машину для crossdev.
А так мне интересно, что это за чудеса такие, если вайн с linux раздела запускает бинарник нормально, а с fat либо ntfs нет.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

ormorph писал(а):
06.09.2020 11:11
А так мне интересно, что это за чудеса такие, если вайн с linux раздела запускает бинарник нормально, а с fat либо ntfs нет.
Скорее всего, библиотеки Qt не находятся нормально. Я, в таких случаях, просто запускаю приложение, смотрю ошибку и копирую нужные библиотеки в каталог программы. Ну, ещё один каталог там нужно скопировать.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
06.09.2020 12:53
Скорее всего, библиотеки Qt не находятся нормально. Я, в таких случаях, просто запускаю приложение, смотрю ошибку и копирую нужные библиотеки в каталог программы. Ну, ещё один каталог там нужно скопировать.
Не библиотеки как раз все скопировал в каталог, иначе бы через вайн не запустилось. Каталог с прогой переношу в любое место на linux разделе, через вайн запускается норм. Копирую каталог на флешку с вин разделом, запускаю через вайн, а прога падает. А так смотрю тут приложение 64 бит собирается.
Потом посмотрю файл проекта, может там есть косяк, может немного проект переделать нужно.
Но все таки интересно как так получается.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

ormorph писал(а):
06.09.2020 13:09
Копирую каталог на флешку с вин разделом, запускаю через вайн, а прога падает.
Молча? Может с консоли запустить? А то, мало ли, может библиотеку какую хочет...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
06.09.2020 14:51
Молча? Может с консоли запустить? А то, мало ли, может библиотеку какую хочет...
Да я и так в консоли запускал. По позже если интересует выложу архив с экзешником и либами. Это будет тот же проект что я раньше выкладывал с обработчиком qdebug. ФС использовал btrfs, позже ещё попробую на другом компе с ext4 через вайн, но думаю ситуация будет аналогичная(запустится на ext4).
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

ormorph писал(а):
06.09.2020 15:02
По позже если интересует выложу архив с экзешником и либами.
Да, лично мне интересно. Я ещё не видел того, что программа в вайне не запускается на определённой FS.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
06.09.2020 15:53
Да, лично мне интересно. Я ещё не видел того, что программа в вайне не запускается на определённой FS.
Проверил на ext4 на другом компе тоже не запустилось архив.
Можно пробовать, там вроде ругается на threads, как бы мне не пришлось пере собирать компилятор для поддержки posix threads.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

Оно и не запустится. Тут явно папки platforms не хватает. Я на эти грабли уже наступал.
Содержимое этой папки зависит от того, что именно вы собирали. Чуть позже напишу, что именно вам не хватает.
P.S. Там ещё и plugins не хватает. Вы бы попроще проект для пробы собрали - ведь не факт, что у меня и у вас Qt одинаковое.
Последний раз редактировалось devilr 06.09.2020 18:14, всего редактировалось 1 раз.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сборка QT5 для Windows из под Linux

Сообщение Bizdelnick »

ormorph писал(а):
06.09.2020 17:51
как бы мне не пришлось пере собирать компилятор для поддержки posix threads.
Ещё раз повторяю: поддержка pthread тут не нужна, да и к компилятору она отношения не имеет. У Вас неправильно сконфигурировался Qt. Где-то в конце конфигурирования он выдаёт сводную таблицу; попробуйте прогнать его с mingw под виндой и сравнить с тем, что получилось у Вас под линуксом. Это всего несколько минут потребует, полная сборка не нужна.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

devilr писал(а):
06.09.2020 18:03
Оно и не запустится. Тут явно папки platforms не хватает. Я на эти грабли уже наступал.
Ага скопировал plugins/platforms запустилось.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 3144
ОС: Mandriva => Gentoo (~amd64)

Re: Сборка QT5 для Windows из под Linux

Сообщение devilr »

ormorph писал(а):
06.09.2020 18:10
Ага скопировал plugins/platforms запустилось.
Там, на самом деле не все файлы нужны. Где-то я видел правила, что нужно, а что не нужно. Но, сейчас уже не помню.
В конце концов, можно либо всё передавать, либо находить нужное перебором. Или дихотомией :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Bizdelnick писал:
06.09.2020 18:09
Ещё раз повторяю: поддержка pthread тут не нужна, да и к компилятору она отношения не имеет.
А уже не надо, а так там собирается с флагом -mthreads.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сборка QT5 для Windows из под Linux

Сообщение Bizdelnick »

ormorph писал(а):
06.09.2020 18:15
там собирается с флагом -mthreads
Так это к POSIX threads отношения не имеет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

Bizdelnick писал:
06.09.2020 19:16
Так это к POSIX threads отношения не имеет.
Конечно не имеет, для posix -lpthread.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1770
ОС: Gentoo

Re: Сборка QT5 для Windows из под Linux

Сообщение ormorph »

В общем не пожалел, что собирал Qt5 под LInux для винды. Под виндой у меня не собирался драйвер для работы с MySQL. Ругался так как по чему то компилятор идущий в стандартной поставке с qtcreator отказывался работать с файлом .lib из mariadb, как результат под виндой не удалось собрать драйвер для работы с MySQL. Но зато в Linux собралось замечательно. Скопировал файлы в соответствующие каталоги Qt5 и нормально собралось и запустилось под виндой, соединение с БД и все запросы работают норм.
Спасибо сказали: