Difference between revisions of "How to Build, Install and Setting Qt Application"
Line 92: | Line 92: | ||
==Cross Compile Qt Program== | ==Cross Compile Qt Program== | ||
− | + | We took QtE-Demo as an example to show how to compile a Qt program. | |
− | === | + | ===S5P4418 Platform=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git clone https://github.com/friendlyarm/QtE-Demo | git clone https://github.com/friendlyarm/QtE-Demo | ||
Line 101: | Line 101: | ||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===S5P6818 Platform=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git clone https://github.com/friendlyarm/QtE-Demo | git clone https://github.com/friendlyarm/QtE-Demo | ||
Line 108: | Line 108: | ||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===Allwinner | + | ===Allwinner H3 Platform=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export PATH=/opt/FriendlyARM/toolschain/4.9.3/bin/:$PATH | export PATH=/opt/FriendlyARM/toolschain/4.9.3/bin/:$PATH | ||
Line 116: | Line 116: | ||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===Allwinner | + | ===Allwinner H5 Platform=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH | export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH | ||
Line 124: | Line 124: | ||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===Amlogic | + | ===Amlogic S905 Platform=== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH | export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH | ||
Line 133: | Line 133: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==Run Qt Application on ARM Board== |
− | + | Before you run a Qt application on a board you need to setup the board's environment variables by running the following commands on that board: | |
− | + | For Qt5 run setqt5env: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
. /usr/bin/setqt5env | . /usr/bin/setqt5env | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | For Qt4 run setqt4env: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
. /usr/bin/setqt4env | . /usr/bin/setqt4env | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Run QtE-Demo: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
./QtE-Demo -qws | ./QtE-Demo -qws | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==Auto-Run Qt Application on System Startup== |
− | + | In our test our QtE-Demo application was under the /root directory. Make sure your "/etc/rc.local" file has the following contents: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
. /usr/bin/setqt5env | . /usr/bin/setqt5env | ||
/root/QtE-Demo -qws& | /root/QtE-Demo -qws& | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | If this is a Qt4 system you need to change "setqt5env" to "setqt4env". | |
− | == | + | ==Display Rotation== |
− | + | Here is a list of methods you can use to rotate your display for various platforms: | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | | | + | | CPU |
− | | | + | | Qt Version |
− | | | + | | Display Rotation |
|- | |- | ||
| S5P4418 | | S5P4418 | ||
| Qt 5.9.1 | | Qt 5.9.1 | ||
− | | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br /> | + | | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br />Applicable rotation degrees: 0, 90, 180, -90 |
|- | |- | ||
| S5P6818 | | S5P6818 | ||
| Qt 5.9.1 | | Qt 5.9.1 | ||
− | | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br /> | + | | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br />Applicable rotation degrees: 0, 90, 180, -90 |
|- | |- | ||
| Allwinner H3 | | Allwinner H3 | ||
| Qt 4.8.6 | | Qt 4.8.6 | ||
− | | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br /> | + | | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br />Applicable rotation degrees: 0, 90, 180, 270 |
|- | |- | ||
| Allwinner H5 | | Allwinner H5 | ||
| Qt 4.8.6 | | Qt 4.8.6 | ||
− | | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br /> | + | | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br />Applicable rotation degrees: 0, 90, 180, 270 |
|- | |- | ||
| Amlogic S905 | | Amlogic S905 | ||
| Qt 5.9.1 | | Qt 5.9.1 | ||
− | | . setqt5env<br />export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90<br />./YourApp<br /><br /> | + | | . setqt5env<br />export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90<br />./YourApp<br /><br />Applicable rotation degrees: 0, 90, 180, 270 |
|} | |} |
Revision as of 07:42, 5 December 2017
Contents
1 Qt Versions
Qt has various versions for various platforms. Each Qt version has its own features and here a list of versions:
CPU | Qt Version | Display Driver | OpenGL | QtWebEngine | Capacitive Touch | ARM Board |
S5P4418 | Qt 5.9.1 | EGLFS | Yes | Yes | Multiple-point touch | NanoPi S2/NanoPi M2A/NanoPi Fire2/NanoPC T2/Smart4418 |
S5P6818 | Qt 5.9.1 | EGLFS | Yes | Yes | Multiple-point touch | NanoPi M3/NanoPi Fire3/NanoPC T3 |
Allwinner H3 | Qt 4.8.6 | LinuxFB | No | No | Single-point touch | NanoPi-Duo/NanoPi-M1-Plus/NanoPi-M1/NanoPi-NEO-Air/NanoPi-NEO-Core/NanoPi-NEO |
Allwinner H5 | Qt 4.8.6 | LinuxFB | No | No | Single-point touch | NanoPi-M1-Plus2/NanoPi-NEO-Core2/NanoPi-NEO-Plus2/NanoPi-NEO2 |
Amlogic S905 | Qt 5.9.1 | LinuxFB | No | No | Single-point touch | NanoPi-K2 |
2 Install Cross Compiler for Qt
(Note: we suggest users use a host PC running a 64-bit Ubuntu 16.04)
Here is a list of cross compilers for various CPUs and ARM boards:
CPU | Qt Version | Compiler & QtSDK |
S5P4418 | Qt 5.9.1 | download link |
S5P6818 | Qt 5.9.1 | download link |
Allwinner H3 | Qt 4.8.6 | download link |
Allwinner H5 | Qt 4.8.6 | download link |
Amlogic S905 | Qt 5.9.1 | download link |
Install a cross compiler by running the following commands:
chmod 755 ./install.sh sudo ./install.sh
3 Cross Compile Qt Program
We took QtE-Demo as an example to show how to compile a Qt program.
3.1 S5P4418 Platform
git clone https://github.com/friendlyarm/QtE-Demo mkdir build && cd build /usr/local/Trolltech/Qt-5.9.1-nexell32/bin/qmake ../QtE-Demo/QtE-Demo.pro make
3.2 S5P6818 Platform
git clone https://github.com/friendlyarm/QtE-Demo mkdir build && cd build /usr/local/Trolltech/Qt-5.9.1-nexell64/bin/qmake ../QtE-Demo/QtE-Demo.pro make
3.3 Allwinner H3 Platform
export PATH=/opt/FriendlyARM/toolschain/4.9.3/bin/:$PATH git clone https://github.com/friendlyarm/QtE-Demo mkdir build && cd build /usr/local/Trolltech/QtEmbedded-4.8.6-arm/bin/qmake ../QtE-Demo/QtE-Demo-Qt4.pro make
3.4 Allwinner H5 Platform
export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH git clone https://github.com/friendlyarm/QtE-Demo mkdir build && cd build /usr/local/Trolltech/QtEmbedded-4.8.6-arm-a64/bin/qmake ../QtE-Demo/QtE-Demo-Qt4.pro make
3.5 Amlogic S905 Platform
export PATH=/opt/FriendlyARM/toolschain/a64-32bit-tootchain/bin/:$PATH git clone https://github.com/friendlyarm/QtE-Demo mkdir build && cd build /usr/local/Trolltech/QtEmbedded-5.9.1-arch64/bin/qmake ../QtE-Demo/QtE-Demo.pro make
4 Run Qt Application on ARM Board
Before you run a Qt application on a board you need to setup the board's environment variables by running the following commands on that board:
For Qt5 run setqt5env:
. /usr/bin/setqt5env
For Qt4 run setqt4env:
. /usr/bin/setqt4env
Run QtE-Demo:
./QtE-Demo -qws
5 Auto-Run Qt Application on System Startup
In our test our QtE-Demo application was under the /root directory. Make sure your "/etc/rc.local" file has the following contents:
. /usr/bin/setqt5env /root/QtE-Demo -qws&
If this is a Qt4 system you need to change "setqt5env" to "setqt4env".
6 Display Rotation
Here is a list of methods you can use to rotate your display for various platforms:
CPU | Qt Version | Display Rotation |
S5P4418 | Qt 5.9.1 | export ROTATION=-90 . setqt5env ./YourApp Applicable rotation degrees: 0, 90, 180, -90 |
S5P6818 | Qt 5.9.1 | export ROTATION=-90 . setqt5env ./YourApp Applicable rotation degrees: 0, 90, 180, -90 |
Allwinner H3 | Qt 4.8.6 | . setqt4env export QWS_DISPLAY='Transformed:Rot90' ./YourApp Applicable rotation degrees: 0, 90, 180, 270 |
Allwinner H5 | Qt 4.8.6 | . setqt4env export QWS_DISPLAY='Transformed:Rot90' ./YourApp Applicable rotation degrees: 0, 90, 180, 270 |
Amlogic S905 | Qt 5.9.1 | . setqt5env export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90 ./YourApp Applicable rotation degrees: 0, 90, 180, 270 |