====== Kompilacia QT ====== ===== Pouzitie QT zo systemovych balickov ===== Hotovu a funkcnu QT mozeme v ubuntu stiahnut pomocou balickoveho managera, resp. cez apt. Pre Qt5 sa jedna o balicek qt5-default, pre Qt4 sa jedna o balicek qt4-default. Vyhody pouzitia Qt z balicka su hlavne: * rychla a jednoducha instalacia * garantovana funkcnost a stabilita Nevyhody pouzitia Qt z balicka su hlavne: * v balickoch su starsie verzie Qt (hlavne ak pouzivame starsie LTS Ubuntu) * takato Qt neobsahuje vsetky moduly - niekedy je potrebne najst a stiahnut balicek s modulom (napr. qtpositioning5-dev, libqt5websockets5-dev) * Qt sa nainstaluje priamo do systemu, takuto Qt len z tazkostami prenesieme na iny PC ===== Instalacia z Qt instalatorov ===== Qtcku je mozne nainstalovat pomocou instalatorov dostupnych na oficialnych strankach Qt. Pre starsie verzie Qt (<5.6) su zvycajne dostupne offline balicky pre linux 32bit aj 64bit. Pre novsie verzie sa avsak balicek pre 32bit linux nevyraba, v takomto pripade je potrebne pouzit iny sposob instalacie. ===== Vykompilovanie Qt zo zdrojakov ===== Tato cesta nam ponuka najviac moznosti, no zaroven si treba dat pozor na par zaludnosti. Postup je nasledovny: * treba stiahnut ziadanu verziu zdrojakov Qt z oficialnych stranok (nieco ako qt-everywhere-src-5.12.1.tar.xz) * poinstalovat vsetky potrebne dependencies * nakonfigurovat instalaciu skriptom "configure" # priecinok, do ktoreho sa Qt nainstaluje (priecinok nebude obsahovat zdrojaky) urcime pomocou "prefix" # pouzivame opensource verziu # confirm-license nebude vyzadovat potvrdenie licencie klavesou ./configure -prefix /opt/Qt/Qt5.12.1 -opensource -confirm-license Ak configure vyhodi nejake chyby, zvycajne sa jedna o chybajucu dependency - treba doinstalovat spravny balik. * vykompilovat pomocou "make" make -j6 * nainstalovat na zvolene cesty pomocou "make install" make install Ak vsetko prebehne uspesne, hotova Qt bude nainstalovana na ceste specifikovanej pomocou "prefix". ===== Prestahovanie Qt (pouzitie qt.conf) ===== Kazda vykompilovana Qt ma nastavene cesty k jednotlivym castiam ako Headers, Libraries, Includes, ... . Tieto cesty mozeme overit prikazom: $ ./qmake -query QT_SYSROOT: QT_INSTALL_PREFIX:/opt/Qt/Qt5.10.1 QT_INSTALL_ARCHDATA:/opt/Qt/Qt5.10.1 QT_INSTALL_DATA:/opt/Qt/Qt5.10.1 QT_INSTALL_DOCS:/opt/Qt/Qt5.10.1/doc QT_INSTALL_HEADERS:/opt/Qt/Qt5.10.1/include QT_INSTALL_LIBS:/opt/Qt/Qt5.10.1/lib QT_INSTALL_LIBEXECS:/opt/Qt/Qt5.10.1/libexec QT_INSTALL_BINS:/opt/Qt/Qt5.10.1/bin QT_INSTALL_TESTS:/opt/Qt/Qt5.10.1/tests QT_INSTALL_PLUGINS:/opt/Qt/Qt5.10.1/plugins QT_INSTALL_IMPORTS:/opt/Qt/Qt5.10.1/imports QT_INSTALL_QML:/opt/Qt/Qt5.10.1/qml QT_INSTALL_TRANSLATIONS:/opt/Qt/Qt5.10.1/translations QT_INSTALL_CONFIGURATION:/opt/Qt/Qt5.10.1/etc/xdg QT_INSTALL_EXAMPLES:/opt/Qt/Qt5.10.1/examples QT_INSTALL_DEMOS:/opt/Qt/Qt5.10.1/examples QT_HOST_PREFIX:/opt/Qt/Qt5.10.1 QT_HOST_DATA:/opt/Qt/Qt5.10.1 QT_HOST_BINS:/opt/Qt/Qt5.10.1/bin QT_HOST_LIBS:/opt/Qt/Qt5.10.1/lib QMAKE_SPEC:linux-g++ QMAKE_XSPEC:linux-g++ QMAKE_VERSION:3.1 QT_VERSION:5.10.1 Cesty mozeme taktiez vidiet v QtCreatore: {{howto:qt_paths.png?800x557}} Pokial chceme uz existujucu instalaciu Qt presunut na iny PC / presunut na inu cestu v suborovom systeme, je potrebne tieto cesty overridovat. Toto sa da realizovat vytvorenim suboru qt.conf na urovni binarky qmake. ==== Priklad qt.conf - Qt pre mikro_cortexa8 ==== Qt vo virtualnom prostredi mikroelektroniky mala nastavene cesty pre cross-kompilaciu do priecinku /clfs. Nasim cielom bolo nasmerovat tieto cesty do nasho toolchainu - na urovni binarky qmake sme preto vytvorili nasledovny qt.conf: [Paths] Prefix = /opt/qt5 Headers = /opt/qt5/include/qt Libraries = /opt/qt5/lib ArchData = /opt/qt5/lib/qt Data = /opt/qt5/share/qt Binaries = /opt/qt5/bin LibraryExecutables = /opt/qt5/lib/qt Plugins = /opt/qt5/lib/qt/plugins Imports = /opt/qt5/lib/qt/imports Qml2Imports = /opt/qt5/lib/qt/qml Translations = /opt/qt5/share/qt Documentation = /opt/qt5/share/doc/qt Settings = /opt/qt5/etc/xdg Examples = /opt/qt5/examples Tests = /opt/qt5/tests HostPrefix = /usr/toolchain/mikro_cortexa8/cross-tools HostData = /usr/toolchain/mikro_cortexa8/cross-tools HostBinaries = /usr/toolchain/mikro_cortexa8/cross-tools/bin HostLibraries = /usr/toolchain/mikro_cortexa8/cross-tools/lib Sysroot = /usr/toolchain/mikro_cortexa8/arm-linux-musleabihf