Qt 5.15 arm64 ubuntu20.04 交叉编译环境-firefly

# Qt 5.15 arm64 ubuntu20.04 交叉编译环境

Firefly Qt5.15 , 运行环境

* Host(x86 PC) : ubuntu 20.04 x86_64

* Target(RK356X): ubuntu 20.04 arm64

## 主机环境部署

```shell
$ apt install -y crossbuild-essential-arm64
$ mkdir -p /opt
$ cp -rfd firefly_qt5.15_arm64_20.04 /opt/
$ cp -rfd sysroot /opt/
$ cp host/host_qtEnv.sh /etc/profile.d/
reboot
```

## 目标环境部署

```shell
$ mkdir -p /opt
$ cp -rfd firefly_qt5.15_arm64_20.04/ext /opt/firefly_qt5.15
$ cp target/target_qtEnv.sh /etc/profile.d/

**注意**
# 为了避免和 Ubuntu 中可能存在的其他 qt 环境冲突,特别是 RK356X Ubuntu,在开发 qt 应用时,一定要在 pro 文件添加:
QMAKE_RPATHDIR += /opt/firefly_qt5.15/lib

# 或者执行程序前指定 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/opt/firefly_qt5.15/lib ./program

# 不要使用 ld.so.conf 来设置,会与系统自身的 qt 环境冲突

# 安装 libgles2
$ [ -e /usr/lib/aarch64-linux-gnu/libGLESv2.so.2.0.0 ] || apt install -y libgles2

# 安装基本库
$ apt install -y \
libmtdev1 \
libinput10 \
libxkbcommon0 \
libdouble-conversion3 \
libicu66 \
libharfbuzz0b \
libwebpdemux2 \
libwebpmux3

# 重启
$ reboot

# Qt QPA Backends
# 根据选择的不同 Backend,需要做以下准备工作

# linuxfb
$ export QT_QPA_PLATFORM=LINUXFB
$ export QT_QPA_FB_DRM=1
$ demo/analogclock

# eglfs
$ export QT_QPA_PLATFORM=EGLFS
$ export QT_QPA_EGLFS_INTEGRATION=EGLFS_KMS #in minimal ubuntu, use eglfs_kms.
$ export QT_QPA_EGLFS_KMS_ATOMIC=1 #use drm atomic api or legacy api(two different)
$ export QT_QPA_EGLFS_HIDECURSOR=1 #hide cursor
$ demo/openglwindow

# xcb (Ubuntu Desktop)
$ apt install -y \
libxcb-icccm4 \
libxcb-image0 \
libxcb-shm0 \
libxcb-keysyms1 \
libxcb-render0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-sync1 \
libxcb-xfixes0 \
libxcb-xinerama0 \
libxcb-xkb1 \
libxcb-randr0 \
libsm6 \
libice6 \
libxkbcommon-x11-0

$ export QT_QPA_PLATFORM=xcb
$ export QT_QPA_EGLFS_INTEGRATION=XCB_EGL

# 确定最终使用的 Backend 后可以在 /etc/profile.d/target_qtEnv.sh 中取消注释对应的段落
# 之后就无需再手动 export 环境变量了
```

## 主机中交叉编译

```shell
$ cd example/
$ qmake
$ make
```

7.2. Qt 交叉编译环境支持

Firefly 发布了两个 Qt 交叉编译工具链,适用于以下环境,请根据需求选择:

  • Qt: 5.12.2

  • Host: x86-64 / Ubuntu 18.04

  • Target: Firefly RK3568 RK3566 RK3399 RK3328 PX30 / Ubuntu 18.04 Minimal&Desktop

  • Qt: 5.15

  • Host: x86-64 / Ubuntu 20.04

  • Target: Firefly RK3588 RK3568 RK3566 / Ubuntu 20.04 Desktop

工具链完整支持 wenEngine, 支持 EGLFS LinuxFB XCB 等 backend。

  • 下载地址

点击下载链接(提取码:FFQT)

posted @ 2026-08-12 07:45  txwtech  阅读(6)  评论(0)    收藏  举报