RV1109/RV1126深度定制:从零构建QT5.9.4独立交叉编译环境实战

当标准SDK提供的QT环境无法满足加密通信、数据库集成等高级需求时,手动搭建交叉编译工具链成为必经之路。本文将彻底拆解如何为Rockchip RV1109/RV1126处理器构建完整的QT5.9.4开发环境,涵盖OpenSSL、SQLite等关键组件的深度集成方案。

1. 环境准备与工具链选型

1.1 硬件与基础软件要求

开发主机建议满足以下配置:

  • CPU :x86_64架构四核及以上
  • 内存 :8GB以上(QT编译过程内存消耗较大)
  • 磁盘空间 :至少50GB可用空间
  • 操作系统 :Ubuntu 18.04/20.04 LTS(WSL2环境下也可运行)

必备工具安装清单:

sudo apt update
sudo apt install -y build-essential git python3-dev autoconf automake libtool pkg-config

1.2 工具链选择策略

针对RV1109/RV1126的Cortex-A7架构,推荐使用经过验证的Linaro GCC 6.5工具链:

wget https://releases.linaro.org/components/toolchain/binaries/6.5-2018.12/arm-linux-gnueabihf/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz
tar -xvf gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz
export CROSS_COMPILE=$(pwd)/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

注意:避免使用SDK预编译工具链,其可能缺少关键库支持。环境变量设置应写入~/.bashrc实现持久化。

2. 第三方库编译实战

2.1 OpenSSL 1.1.1安全编译

下载并解压源码包:

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

配置编译参数时需特别注意:

./Configure linux-armv4 \
    --prefix=/opt/rv1126_openssl \
    --cross-compile-prefix=${CROSS_COMPILE} \
    no-asm shared no-async

关键Makefile参数验证:

CC= $(CROSS_COMPILE)gcc
AR= $(CROSS_COMPILE)ar r
RANLIB= $(CROSS_COMPILE)ranlib

编译安装命令:

make -j$(nproc)
sudo make install

验证编译结果:

file /opt/rv1126_openssl/lib/libssl.so.1.1
# 应显示ARM架构ELF文件信息

2.2 SQLite 3.36深度优化编译

针对嵌入式环境推荐启用以下特性:

./configure \
    --host=arm-linux-gnueabihf \
    --prefix=/opt/rv1126_sqlite \
    --enable-threadsafe \
    --enable-dynamic-extensions \
    CC=${CROSS_COMPILE}gcc

编译参数优化建议:

make CFLAGS="-Os -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_JSON1=1" -j$(nproc)
sudo make install

3. QT5.9.4核心编译工程

3.1 源码获取与基础配置

下载QT5.9.4完整源码:

wget https://download.qt.io/archive/qt/5.9/5.9.4/single/qt-everywhere-opensource-src-5.9.4.tar.xz
tar -xvf qt-everywhere-opensource-src-5.9.4.tar.xz
cd qt-everywhere-opensource-src-5.9.4

创建自动化编译脚本build.sh:

#!/bin/bash
./configure \
    -prefix /opt/rv1126_qt5.9.4 \
    -confirm-license \
    -opensource \
    -release \
    -xplatform linux-arm-gnueabi-g++ \
    -linuxfb \
    -no-opengl \
    -no-xcb \
    -qt-libjpeg \
    -qt-libpng \
    -qt-zlib \
    -sql-sqlite \
    -openssl-linked \
    -I /opt/rv1126_openssl/include \
    -L /opt/rv1126_openssl/lib \
    -I /opt/rv1126_sqlite/include \
    -L /opt/rv1126_sqlite/lib

3.2 关键平台配置调整

修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf:

# 编译器路径设置
QMAKE_CC  = $${CROSS_COMPILE}gcc
QMAKE_CXX = $${CROSS_COMPILE}g++
QMAKE_LINK = $${CROSS_COMPILE}g++

# 第三方库路径
QMAKE_INCDIR += /opt/rv1126_openssl/include /opt/rv1126_sqlite/include
QMAKE_LIBDIR += /opt/rv1126_openssl/lib /opt/rv1126_sqlite/lib

# 链接参数
QMAKE_LIBS += -lssl -lcrypto -lsqlite3

3.3 编译与安装

启动编译过程(建议使用tmux或screen保持会话):

chmod +x build.sh
./build.sh
make -j$(nproc) 2>&1 | tee build.log
sudo make install

常见问题处理:

  • openssl-linked报错 :检查OpenSSL的lib目录是否包含.so动态库
  • sqlite找不到 :确认SQLite编译时启用了动态库支持
  • 内存不足 :添加swap空间或减少编译线程数

4. 开发环境部署与验证

4.1 开发主机环境配置

QT Creator集成配置步骤:

  1. 进入Tools > Options > Kits
  2. 添加自定义编译器路径:${CROSS_COMPILE}g++
  3. 创建新Kit,选择QT版本为/opt/rv1126_qt5.9.4/bin/qmake
  4. 设置sysroot指向工具链目录

.pro文件关键配置示例:

QT += core gui widgets sql network

LIBS += -L/opt/rv1126_openssl/lib -lssl -lcrypto
INCLUDEPATH += /opt/rv1126_openssl/include

DEFINES += SQLITE_ENABLE_FTS3 QT_DEPRECATED_WARNINGS

4.2 目标板部署方案

最小化文件清单:

/usr/local/qt5.9.4/
  ├── lib/          # QT核心库
  ├── plugins/      # 平台插件
  └── bin/          # 可执行文件

/usr/lib/
  ├── libssl.so.1.1
  ├── libcrypto.so.1.1
  └── libsqlite3.so.0

环境变量配置示例:

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_FB_DRM=1
export LD_LIBRARY_PATH=/usr/local/qt5.9.4/lib:/usr/lib

4.3 性能优化技巧

  1. 库体积缩减
arm-linux-gnueabihf-strip --strip-unneeded libQt5Core.so.5.9.4
  1. 启动加速配置
# qt.conf
[Paths]
Prefix = /usr/local/qt5.9.4
Libraries = lib
Plugins = plugins
  1. 帧缓冲优化
# 内核启动参数添加
video=HDMI-A-1:1280x720@60
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐