Компилиране на Qt проект като 64-битово приложение на 32-битов Win XP



  • Здравейте,

    как мога да компилирам Qt проект ( просто конзолно приложение ) като 64-битово приложение на 32-битов Win XP ? Досега винаги съм компилирал като 32-битови приложения ( Ubuntu / Windows ). Програмата е прост J1939 BootLoader за 16-битови Freescale/Microchip процесори през PCAN USB адаптор или проектиран от мен USB адаптор (с PIC32). На 32-битов Win XP работи, но на Win 7 64-bit нещо става с времезакъсненията ( може би таймерите ) и изпускам J1939 пакети.

    В download секцията на qt-project.org намирам само 64-битовa Windows версия за VS 2013, но аз използвам MinGW и Qt Creator, версията на Qt е 4.7.0.

    Ако е много трудоемко крос компилирането на 64-битов приложение на 32-битов Windows, то по-лекия вариант е да гокомпилирам на 64-битов Windows в къщи, но не намирам 64-битов инсталация на Qt с MinGW.

    Някакви идеи ?

    Благодаря



  • Крос компилиране под уиндоус честно казано не съм пробвал, ако е сходно на това под линукс - по- добре си купи друг компютър на който да си направиш рабтна среда със 64 битова система. За съжаление мисля че не можеш да използваш приложения като VirtualBox, защото те могат да емулират 32 битова на 64 битова, но не и обратното (до колкото си спомням). Аз лично започнах да предпочитам варианта за различна среда при различен target, защото разделя библиотеките. Иначе на хост системата ти става хаос от библиотеки.

    Но както казах, нямам опит с уиндоус крос компилиране.

    Бих те посъветвал да актуализираш Qt. Последната версия от 4.х клона е 4.8.6, да не говорим че най- новата е 5.3.2. Знам от личен опит че смяната между Qt версиите също може да е много бавен и отегчителен процес, но по- новите версии предлагат и повече функционалност (или по- малко писане на код от твоя страна). Също така проблема с тайминга може до някаква степен да се дължи на по- ниската версия (макар че ме съмнява), както и на компилатора. Последната версия на MinGW ли ползваш?

    Не е задължително да ползваш предоставените от Дигия инсталатори. Дори напротив - ако искаш проекта ти да включва само най- необходимото, изтегли сорс кода и компилирай само това което ти трябва. Аз лично винаги се налага да компилирам, тъй като няма включена поддръжка на MySQL по подразбиране (което може и да се е променило, трябва да проверя :D )

    Успех!



  • Здравейте,

    инсталирах "Qt 5.3.2-x64":http://sourceforge.net/projects/qtx64/ на един лаптоп с Windows 8.1, след това инсталирах и "32-bit Qt 5.3.2":http://download.qt-project.org/official_releases/qt/5.3/5.3.2/qt-opensource-windows-x86-mingw482_opengl-5.3.2.exe . В настройките на Qt Creator трябваше да добавя ръчно Qt 5.3.2-x64, нещо не го намери сам. Сега мога да компилирам проекта в 32 или 64-битов вариант.

    По принцип съм с 4.7.0, защото на работата машината ми е много стара и Qt 5.xx е много бавно, особено ако дебъгваш, докато се зареди GDB брада хващам. Пък и не използвам нищо съществено от Qt5.

    Благодаря



  • Здрасти.

    Аз лично намерих фундаментални разлики дори между 4.7 и 4.8, не мога да се сетя какво точно, но много ме беше изнервило. Ако не се лъжа, с 4.7 ползвах QHttp, който в 4.8 беше направен private и трябваше да сменям на QNetworkAccessManager. Въпреки това, QNAM е мислен като по- нов вариант за управление на мрежови връзки, така че е хубаво човек да е запознат с него. Това и имах предвид като казах че е по- добре да актуализираш с по- нова версия - новите неща не винаги са лоши (и това го казвам с пълното съзнание че KDE средата под линукс все още е на 4.8 и ще имат бая зор с прехвърлянето към 5.х според мен). Рано или късно предполагам ще искате да направите прехода към по- нова версия.

    За бавното зареждане... не мога да кажа, може би трябва да опиташ все пак да компилираш от сорса само това което ти е необходимо. Ето официалния начин "тук":http://qt-project.org/doc/qt-5/windows-building.html
    Ще е необходимо да изтеглиш някой неща предварително като mingw и ActivePerl.

    Така и не каза дали с 5.3 проблема е решен или все още се губят пакети ;-)



  • @Eus, KDE от лятото е вече на Qt5 и върви страшно добре. Портването от 4 на 5 става доста лесно и бързо. Аз моята дипломна я портнах за 20-30 мин(10тина класа и доста QML).
    QHttp и QFTP вече ги няма, но с QNAM нещата стават доста лесно и бързо.

    @Bolg, в началото, когато излезе 5.0, знам, че имаха някакви с 64битова версия с MinGW и бяха казали, че ще го оправят. Явно още не са...



  • Здравейте,

    не съм тествал 64-битовата версия, защото колегата който се оплакваше от 32-битовата версия пусната на 64-битов Windows каза, че всъщност имал лоши връзки по кабелите на CAN шината и след като ги оправил сега работела коректно.

    От Qt4 към Qt5 нямах проблем при компилирането, то всъщност използвам все пак няколко Qt класа. Зачетох се за интеграцията на Qt с Visual Studio, не ми стана много ясно дали може Qt да се компилира с Visual Studio Express, или не. Ще трябва да се чете още.



  • @task_struct, от сорс ли билдваш? Понеже аз ползвам федора, инсталирана е преди има няма 2-3 месеца и пакетите на Qt които идват по подразбиране са 4.8.6, аз допълнително си инсталирах 5.х... а във Федора обикновено използват всичко най- ново. Може и да са ме подвели тоя път ;-)

    Знам за QHttp и QFtp, именно това споменах в предишния си пост ;-)

    QNAM ме издразни в началото, защото някой концепции ми се сториха различни от това което бях чел до него момент, но съм съгласен че с него нещата могат да бъдат доста лесни и бързи.
    А тоя QML, да му се не види, трябва да го поразровя и аз най- накрая....



  • @task_struct, от сорс ли билдваш? Понеже аз ползвам федора, инсталирана е преди има няма 2-3 месеца и пакетите на Qt които идват по подразбиране са 4.8.6, аз допълнително си инсталирах 5.х... а във Федора обикновено използват всичко най- ново. Може и да са ме подвели тоя път ;-)

    Знам за QHttp и QFtp, именно това споменах в предишния си пост ;-)

    QNAM ме издразни в началото, защото някой концепции ми се сториха различни от това което бях чел до него момент, но съм съгласен че с него нещата могат да бъдат доста лесни и бързи.
    А тоя QML, да му се не види, трябва да го поразровя и аз най- накрая....



  • Не. Аз съм вече с KDE 5 и заради него имам и последното Qt.

    И при мен беше същото с QNAM. Първо беше "WTF??", ама после свикнах :)



  • Не. Аз съм вече с KDE 5 и заради него имам и последното Qt.

    И при мен беше същото с QNAM. Първо беше "WTF??", ама после свикнах :)



  • Release notes

    Fedora 21 includes KDE Frameworks 5, successor to KDE Platform 4. KDE Frameworks 5 are based on Qt 5 and give developers of C++ and Qt applications access large variety of technologies and tools developed by the KDE Community, without having to depend on the entire KDE platform.

    Това са релийз ноутс от федора 21 която излезе преди няколко дена. Има информация че може да се изтегли и като се добави еди кое си репозитори, ама не ми се занимава с 3rd party, явно ще трябва да преинсталирам :D

    Ти беше казвал какво ползваш, ама не си спомням.... изненадва ме че веднъж някой е преди федора :D



  • Release notes

    Fedora 21 includes KDE Frameworks 5, successor to KDE Platform 4. KDE Frameworks 5 are based on Qt 5 and give developers of C++ and Qt applications access large variety of technologies and tools developed by the KDE Community, without having to depend on the entire KDE platform.

    Това са релийз ноутс от федора 21 която излезе преди няколко дена. Има информация че може да се изтегли и като се добави еди кое си репозитори, ама не ми се занимава с 3rd party, явно ще трябва да преинсталирам :D

    Ти беше казвал какво ползваш, ама не си спомням.... изненадва ме че веднъж някой е преди федора :D



  • QEMU поддържа различни архитектури (intel 32/64, arm32/64 и т.н.) и динамично превежда инструкциите от една архитектура в друга. QEMU е емулатор за разлика от виртуализатори като VirtualBox, VMWare Player/Workstation и т.н. VirtualBox и компания не могат да пресъздадат архитектура, която не е в наличност (преминаването от 64 към 32 бита не го считам за проблемно за това не го споменавам). Иначе native няма как да стане работата.

    Crosscompiling за Qt бих препоръчал само на най-големите си врагове. Има (калпава) документация само за Symbian (кой ползва това нещо още?!) и QNX, но в момента, в който навлезнеш във водите на generic Linux устройствата, се оправяй сам. В момента се тормозя да компилирам Qt-то на моя 64 битов Debian за да мога по-бързо и лесно да разработвам за за 32 битовия ARM на Raspberry Pi 2. Няма такава малоумна история...Дори някои от конфигурационните файлове на тия "умници" са счупени. Човек трябва да се рови с дни, за да намери и късче полезна информация, а какво остава за напълно функционален туториъл, който да обяснява всичко.

    ПП: QML като замисъл е добър, но като реализация - гола вода. Прекалено много промени за кратко време да не говорим за съвместимост между версия А и Б...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.