Difference between revisions of "How to Build, Install and Setting Qt Application"

From FriendlyARM WiKi
Jump to: navigation, search
Line 1: Line 1:
 
[[How to Build & Install Qt-5.9.1 Application for FriendlyELEC Boards/zh|查看中文]]
 
[[How to Build & Install Qt-5.9.1 Application for FriendlyELEC Boards/zh|查看中文]]
 +
 +
==Qt版本介绍==
 +
Qt针对不同型号的开发板,提供了不同的Qt版本,Qt支持的特性也不同,请参照下面的表格:
 +
{| class="wikitable"
 +
|-
 +
  | CPU名称
 +
  | Qt版本
 +
  | 显示驱动
 +
  | OpenGL支持
 +
  | QtWebEngine支持
 +
  | 电容屏
 +
  | 对应开发板
 +
|-
 +
  | S5P4418
 +
  | Qt 5.9.1
 +
  | EGLFS
 +
  | Yes
 +
  | Yes
 +
  | 多点触摸
 +
  | NanoPi S2/NanoPi M2A/NanoPi Fire2/NanoPC T2/Smart4418
 +
|-
 +
  | S5P6818
 +
  | Qt 5.9.1
 +
  | EGLFS
 +
  | Yes
 +
  | Yes
 +
  | 多点触摸
 +
  | NanoPi M3/NanoPi Fire3/NanoPC T3
 +
|-
 +
  | Allwinner H3
 +
  | Qt 4.8.6
 +
  | LinuxFB
 +
  | No
 +
  | No
 +
  | 单点触摸
 +
  | NanoPi-Duo/NanoPi-M1-Plus/NanoPi-M1/NanoPi-NEO-Air/NanoPi-NEO-Core/NanoPi-NEO
 +
|-
 +
  | Allwinner H5
 +
  | Qt 4.8.6
 +
  | LinuxFB
 +
  | No
 +
  | No
 +
  | 单点触摸
 +
  | NanoPi-M1-Plus2/NanoPi-NEO-Core2/NanoPi-NEO-Plus2/NanoPi-NEO2
 +
|-
 +
  | Amlogic S905
 +
  | Qt 5.9.1
 +
  | LinuxFB
 +
  | No
 +
  | No
 +
  | 单点触摸
 +
  | NanoPi-K2
 +
|}
 +
 +
==安装Qt交叉编译环境==
 +
(注意:推荐的PC操作系统为 Ubuntu 16.04 64位系统) <br />
 +
根据你所用开发板的CPU型号,点击下表中的链接,下载链接内的所有文件到本地:
 +
{| class="wikitable"
 +
|-
 +
  | CPU名称
 +
  | Qt版本
 +
  | 编译器与QtSDK
 +
|-
 +
  | S5P4418
 +
  | Qt 5.9.1
 +
  | [http://112.124.9.243/qtsdk-friendlyelec/s5p4418/ 点击下载]
 +
|-
 +
  | S5P6818
 +
  | Qt 5.9.1
 +
  | [http://112.124.9.243/qtsdk-friendlyelec/s5p6818/ 点击下载]
 +
|-
 +
  | Allwinner H3
 +
  | Qt 4.8.6
 +
  | [http://112.124.9.243/qtsdk-friendlyelec/h3/ 点击下载]
 +
|-
 +
  | Allwinner H5
 +
  | Qt 4.8.6
 +
  | [http://112.124.9.243/qtsdk-friendlyelec/h5/ 点击下载]
 +
|-
 +
  | Amlogic S905
 +
  | Qt 5.9.1
 +
  | [http://112.124.9.243/qtsdk-friendlyelec/s905/ 点击下载]
 +
|}
 +
 +
然后执行以下命令安装即可:
 +
<syntaxhighlight lang="bash">
 +
chmod 755 ./install.sh
 +
sudo ./install.sh
 +
</syntaxhighlight>
 +
 +
==交叉编译你的Qt应用程序 ==
 +
 +
下面以下载并编译一个 QtE-Demo 为例,分别说明在各个平台编译一个 Qt应用程序的步骤:
 +
 +
===S5P4418平台的编译===
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
===S5P6818平台的编译===
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
===Allwinner H3平台的编译===
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
===Allwinner H5平台的编译===
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
===Amlogic S905平台的编译===
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
 +
==在开发板上运行Qt程序==
 +
 +
运行Qt程序之前,需要先设置环境变量,在开发板上执行以下命令即可:
 +
 +
Qt5,使用 setqt5env:
 +
<syntaxhighlight lang="bash">
 +
. /usr/bin/setqt5env
 +
</syntaxhighlight>
 +
 +
Qt4,使用 setqt4env:
 +
<syntaxhighlight lang="bash">
 +
. /usr/bin/setqt4env
 +
</syntaxhighlight>
 +
 +
例如运行上一章节编译的QtE-Demo:
 +
<syntaxhighlight lang="bash">
 +
./QtE-Demo -qws
 +
</syntaxhighlight>
 +
 +
==开机自动运行Qt程序==
 +
 +
以运行上一章节中的 QtE-Demo 程序为例,假设它放在 /root 目录,则你可以编辑 /etc/rc.local 文件,确否有以下内容:
 +
<syntaxhighlight lang="bash">
 +
. /usr/bin/setqt5env
 +
/root/QtE-Demo -qws&
 +
</syntaxhighlight>
 +
如果是 Qt4,请将setqt5env改为setqt4env。
 +
 +
==屏幕旋转==
 +
根据你所用开发板的CPU型号,点击下表中的链接,下载链接内的所有文件到本地:
 +
{| class="wikitable"
 +
|-
 +
  | CPU名称
 +
  | Qt版本
 +
  | 屏幕旋转方法
 +
|-
 +
  | S5P4418
 +
  | Qt 5.9.1
 +
  | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br />可设置角度值为: 0, 90, 180, -90
 +
|-
 +
  | S5P6818
 +
  | Qt 5.9.1
 +
  | export ROTATION=-90<br />. setqt5env<br />./YourApp<br /><br />可设置角度值为: 0, 90, 180, -90
 +
|-
 +
  | Allwinner H3
 +
  | Qt 4.8.6
 +
  | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br />可设置角度值为: 0, 90, 180, 270
 +
|-
 +
  | Allwinner H5
 +
  | Qt 4.8.6
 +
  | . setqt4env<br />export QWS_DISPLAY='Transformed:Rot90'<br />./YourApp<br /><br />可设置角度值为: 0, 90, 180, 270
 +
|-
 +
  | Amlogic S905
 +
  | Qt 5.9.1
 +
  | . setqt5env<br />export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90<br />./YourApp<br /><br />可设置角度值为: 0, 90, 180, 270
 +
|}

Revision as of 07:04, 5 December 2017

查看中文

1 Qt版本介绍

Qt针对不同型号的开发板,提供了不同的Qt版本,Qt支持的特性也不同,请参照下面的表格:

CPU名称 Qt版本 显示驱动 OpenGL支持 QtWebEngine支持 电容屏 对应开发板
S5P4418 Qt 5.9.1 EGLFS Yes Yes 多点触摸 NanoPi S2/NanoPi M2A/NanoPi Fire2/NanoPC T2/Smart4418
S5P6818 Qt 5.9.1 EGLFS Yes Yes 多点触摸 NanoPi M3/NanoPi Fire3/NanoPC T3
Allwinner H3 Qt 4.8.6 LinuxFB No No 单点触摸 NanoPi-Duo/NanoPi-M1-Plus/NanoPi-M1/NanoPi-NEO-Air/NanoPi-NEO-Core/NanoPi-NEO
Allwinner H5 Qt 4.8.6 LinuxFB No No 单点触摸 NanoPi-M1-Plus2/NanoPi-NEO-Core2/NanoPi-NEO-Plus2/NanoPi-NEO2
Amlogic S905 Qt 5.9.1 LinuxFB No No 单点触摸 NanoPi-K2

2 安装Qt交叉编译环境

(注意:推荐的PC操作系统为 Ubuntu 16.04 64位系统)
根据你所用开发板的CPU型号,点击下表中的链接,下载链接内的所有文件到本地:

CPU名称 Qt版本 编译器与QtSDK
S5P4418 Qt 5.9.1 点击下载
S5P6818 Qt 5.9.1 点击下载
Allwinner H3 Qt 4.8.6 点击下载
Allwinner H5 Qt 4.8.6 点击下载
Amlogic S905 Qt 5.9.1 点击下载

然后执行以下命令安装即可:

chmod 755 ./install.sh
sudo ./install.sh

3 交叉编译你的Qt应用程序

下面以下载并编译一个 QtE-Demo 为例,分别说明在各个平台编译一个 Qt应用程序的步骤:

3.1 S5P4418平台的编译

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平台的编译

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平台的编译

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平台的编译

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平台的编译

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 在开发板上运行Qt程序

运行Qt程序之前,需要先设置环境变量,在开发板上执行以下命令即可:

Qt5,使用 setqt5env:

. /usr/bin/setqt5env

Qt4,使用 setqt4env:

. /usr/bin/setqt4env

例如运行上一章节编译的QtE-Demo:

./QtE-Demo -qws

5 开机自动运行Qt程序

以运行上一章节中的 QtE-Demo 程序为例,假设它放在 /root 目录,则你可以编辑 /etc/rc.local 文件,确否有以下内容:

. /usr/bin/setqt5env
/root/QtE-Demo -qws&

如果是 Qt4,请将setqt5env改为setqt4env。

6 屏幕旋转

根据你所用开发板的CPU型号,点击下表中的链接,下载链接内的所有文件到本地:

CPU名称 Qt版本 屏幕旋转方法
S5P4418 Qt 5.9.1 export ROTATION=-90
. setqt5env
./YourApp

可设置角度值为: 0, 90, 180, -90
S5P6818 Qt 5.9.1 export ROTATION=-90
. setqt5env
./YourApp

可设置角度值为: 0, 90, 180, -90
Allwinner H3 Qt 4.8.6 . setqt4env
export QWS_DISPLAY='Transformed:Rot90'
./YourApp

可设置角度值为: 0, 90, 180, 270
Allwinner H5 Qt 4.8.6 . setqt4env
export QWS_DISPLAY='Transformed:Rot90'
./YourApp

可设置角度值为: 0, 90, 180, 270
Amlogic S905 Qt 5.9.1 . setqt5env
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90
./YourApp

可设置角度值为: 0, 90, 180, 270