PX30 Qt 5.15 交叉编译环境搭建完整指南 (Ubuntu 20.04 → PX30 aarch64)
🎯 项目概览
本指南详细记录了在Ubuntu 20.04上搭建针对Rockchip PX30的Qt 5.15.2交叉编译环境的完整过程,包括实际操作步骤、遇到的问题及解决方案。
目标平台: Rockchip PX30 (ARM Cortex-A53, aarch64)
开发环境: Ubuntu 20.04 LTS
Qt版本: 5.15.2
工具链: Linaro GCC 7.5.0
✅ 环境搭建验证结果
- ✅ 编译成功: Qt 5.15.2完整编译并安装到
/opt/qt5.15-aarch64/ - ✅ 测试应用: 成功编译ARM64架构的Qt应用
px30-qt-test - ✅ 部署就绪: 部署脚本和运行时环境准备完成
- ✅ 完整验证: 从源码到可执行文件全流程验证通过
- ✅ 编译统计: 65个动态库,0个错误,39个警告
📊 实际搭建统计
编译时间: 约3小时 (Intel 2核心)
磁盘占用: ~8GB (包括源码和编译文件)
生成库数量: 65个动态库文件
目标架构: ARM aarch64 (验证通过)
最终状态: 完全可用的交叉编译环境
1. 系统环境准备
1.1 安装系统依赖
sudo apt update
sudo apt install -y build-essential git python3 libgl1-mesa-dev \
libxkbcommon-dev libxcb-xinerama0-dev libxcb-icccm4-dev \
libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev \
libxcb-xkb-dev libxkbcommon-x11-dev flex bison gperf \
libssl-dev ninja-build ruby perl python3-pip \
libfontconfig1-dev libfreetype6-dev libx11-dev \
libxext-dev libxfixes-dev libxi-dev libxrender-dev \
libxcb1-dev libx11-xcb-dev libxcb-glx0-dev
1.2 验证系统环境
# 检查Ubuntu版本
cat /etc/os-release
# 应显示: Ubuntu 20.04.x LTS
# 检查可用空间 (建议至少10GB)
df -h
2. 安装aarch64工具链
2.1 下载Linaro工具链
cd /tmp
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
2.2 安装工具链
# 解压到系统目录
sudo tar -xJf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz -C /opt
# 设置环境变量
echo "export TOOLCHAIN_PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu" >> ~/.bashrc
echo "export PATH=\$TOOLCHAIN_PATH/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
2.3 验证工具链
aarch64-linux-gnu-gcc --version
# 应显示: aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0
3. 准备PX30 Sysroot
3.1 方法一:使用工具链自带的sysroot (实际使用)
# 创建sysroot目录
export SYSROOT_PATH=$HOME/px30-sysroot
mkdir -p $SYSROOT_PATH
# 从工具链复制基础系统库
cp -r /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/* $SYSROOT_PATH/
# 验证sysroot
ls -la $SYSROOT_PATH/lib
ls -la $SYSROOT_PATH/usr/lib
3.2 方法二:从PX30设备获取 (推荐但需要设备)
# 在开发机上创建 sysroot 目录
export SYSROOT_PATH=$HOME/px30-sysroot
mkdir -p $SYSROOT_PATH
# 在 PX30 设备上执行 (需要 root 权限):
ssh root@<DEVICE_IP> "mkdir -p /tmp/sysroot && \
rsync -a --relative /lib /usr/lib /usr/include /usr/local/lib /tmp/sysroot && \
tar -C /tmp/sysroot -cf /tmp/px30-sysroot.tar ."
# 复制到开发机
scp root@<DEVICE_IP>:/tmp/px30-sysroot.tar $SYSROOT_PATH/
# 解压
cd $SYSROOT_PATH
tar xf px30-sysroot.tar
4. 获取Qt 5.15源代码
4.1 克隆Qt仓库
cd ~
git clone git://code.qt.io/qt/qt5.git
cd qt5
git checkout v5.15.2
4.2 初始化子模块 (选择必要模块)
./init-repository --module-subset=qtbase,qtdeclarative,qtsvg,qtquickcontrols2
5. 配置Qt编译
5.1 创建编译目录
mkdir -p $HOME/qt5-build
cd $HOME/qt5-build
5.2 配置编译选项 (实际使用的配置)
# 设置环境变量
export TOOLCHAIN_PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
export PATH=$TOOLCHAIN_PATH/bin:$PATH
export SYSROOT_PATH=$HOME/px30-sysroot
# 配置Qt (禁用OpenGL以避免依赖问题)
$HOME/qt5/configure \
-release \
-prefix /opt/qt5.15-aarch6

最低0.47元/天 解锁文章
1746

被折叠的 条评论
为什么被折叠?



