Qt交叉编译器使用指南
本文指导交叉编译的 Qt 用于编译 ARM64 平台的测试程序。
关键目录说明
| 目录类型 | 路径 |
|———-|——|
| 主机工具 | /home/hw/hdd/rk3568_qt_5129/qt-everywhere-src-5.12.9/host/bin |
| 目标库 | /home/hw/hdd/rk3568_qt_5129/qt-everywhere-src-5.12.9/ext |
| 根文件系统 | /home/hw/hdd/rk3568_qt_5129/sysroot |
步骤 1:设置 Qt 编译环境
在终端配置环境变量(在编译测试程序前执行):
export QT_HOST_PREFIX=/home/hw/hdd/rk3568_qt_5129/qt-everywhere-src-5.12.9/host # 指定host目录
export QT_TARGET_PREFIX=/home/hw/hdd/rk3568_qt_5129/qt-everywhere-src-5.12.9/ext # 指定ext目录
export PATH=$QT_HOST_PREFIX/bin:$PATH # 指定交叉编译工具目录
export SYSROOT=/home/hw/hdd/rk3568_qt_5129/sysroot # 指定arm64平台根文件系统目录
export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu- # 指定要使用的交叉编译链
步骤 2:创建测试程序
新建测试目录并创建测试文件:
mkdir qt_test && cd qt_test
touch main.cpp
main.cpp 内容示例:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Qt on RK3568 works!");
label.setAlignment(Qt::AlignCenter);
label.resize(400, 300);
label.show();
return app.exec();
}
步骤 3:编写项目文件
创建 .pro 项目文件:
touch test_app.pro
test_app.pro 内容:
QT += widgets
TARGET = test_app
SOURCES += main.cpp
# 目标设备链接器设置
target.path = /usr/bin
INSTALLS += target
步骤 4:交叉编译测试程序
# 使用交叉编译的 qmake
qmake
# 使用交叉编译工具链构建
make -j$(nproc)
步骤 5:部署到 RK3568
将生成的可执行文件和依赖库复制到开发板:
-
复制可执行文件: 复制test_app到arm板上
-
移植 Qt 依赖库: 主要是移植QT_TARGET_PREFIX这个目录到ARM板上,具体参考《Qt5.12.9库(交叉编译)移植指南》
留下评论