告别Buildroot!用独立交叉编译工具链为RV1109构建QT5.9.4全攻略(含OpenSSL/SQLite)
·
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集成配置步骤:
- 进入Tools > Options > Kits
- 添加自定义编译器路径:${CROSS_COMPILE}g++
- 创建新Kit,选择QT版本为/opt/rv1126_qt5.9.4/bin/qmake
- 设置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 性能优化技巧
- 库体积缩减 :
arm-linux-gnueabihf-strip --strip-unneeded libQt5Core.so.5.9.4
- 启动加速配置 :
# qt.conf
[Paths]
Prefix = /usr/local/qt5.9.4
Libraries = lib
Plugins = plugins
- 帧缓冲优化 :
# 内核启动参数添加
video=HDMI-A-1:1280x720@60
更多推荐


所有评论(0)