news 2026/4/23 12:58:23

RK3568开发实战:从零构建Qt交叉编译环境到Demo部署全流程解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3568开发实战:从零构建Qt交叉编译环境到Demo部署全流程解析

1. 环境准备:搭建开发基础

在开始RK3568的Qt交叉编译之前,我们需要先准备好开发环境。这个过程就像盖房子前要打地基一样重要,地基打好了,后面的工作才能顺利进行。

首先,我们需要一台运行Ubuntu的宿主机。推荐使用Ubuntu 18.04或20.04 LTS版本,这两个版本在嵌入式开发中经过广泛验证,稳定性有保障。我自己的开发机就是Ubuntu 20.04,用了两年多一直很稳定。

安装好Ubuntu后,我们需要更新系统并安装一些必要的开发工具。打开终端,执行以下命令:

sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git cmake python3 python3-pip

这些基础工具安装完成后,我们还需要安装一些特定的依赖库:

sudo apt install -y libncurses5-dev libssl-dev liblz4-tool \ bison flex gawk texinfo chrpath diffstat binfmt-support \ qemu-user-static live-build fakeroot cmake gcc-multilib \ g++-multilib unzip device-tree-compiler

这些依赖库中,有些是编译工具链必需的,有些是Qt开发需要的。我建议一次性全部安装好,避免后面因为缺少某个库而中断编译过程。

2. 安装Qt开发环境

2.1 下载Qt安装包

Qt官方提供了多种安装方式,对于RK3568开发,我们需要两个版本的Qt:

  1. 桌面版Qt:用于在宿主机上开发和调试
  2. 交叉编译版Qt:用于生成目标板的可执行文件

首先下载桌面版Qt。访问Qt官网下载页面,选择Qt 5.14.2版本。这个版本是经过RK3568验证的稳定版本,建议不要随意更换其他版本。

下载完成后,给安装文件添加执行权限:

chmod +x qt-opensource-linux-x64-5.14.2.run

2.2 安装Qt Creator

运行安装程序时有个小技巧:建议先断开网络连接。这是因为Qt安装程序会强制要求登录账号,断网安装可以跳过这一步。

./qt-opensource-linux-x64-5.14.2.run

安装过程中,选择"Desktop gcc"组件,这是我们在宿主机上开发需要的。安装完成后,可以在应用菜单中找到Qt Creator。

我第一次安装时没注意,把所有组件都装上了,结果占用了大量磁盘空间。后来发现其实只需要安装必要的组件就够了,这样可以节省不少空间。

3. 配置交叉编译工具链

3.1 获取RK3568工具链

RK3568使用的是ARM Cortex-A55架构,我们需要对应的交叉编译工具链。可以从Linaro官网下载:

wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

解压后,将工具链路径添加到环境变量中:

export PATH=$PATH:/path/to/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin

为了方便,可以把这行命令添加到~/.bashrc文件中,这样每次打开终端都会自动设置好环境变量。

3.2 验证工具链

安装完成后,我们可以验证一下工具链是否正常工作:

aarch64-linux-gnu-gcc --version

如果看到类似下面的输出,说明工具链安装成功:

aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc.

4. 配置Qt交叉编译环境

4.1 获取RK3568的Qt库

RK3568官方提供了预编译的Qt库,我们需要下载并解压:

wget http://repo.rock-chips.com/rk3568/qt5.14.2-buildroot.tar.gz tar -xzvf qt5.14.2-buildroot.tar.gz

解压后会得到一个包含Qt库和工具的目录,我们需要在Qt Creator中配置这些路径。

4.2 配置Qt Creator

打开Qt Creator,按照以下步骤配置:

  1. 进入"工具"->"选项"->"Kits"
  2. 添加新的Qt版本,选择解压目录中的qmake
  3. 添加新的编译器,选择我们之前安装的aarch64-linux-gnu-g++
  4. 创建新的Kit,将Qt版本和编译器关联起来

配置完成后,我们的开发环境就具备了交叉编译的能力。我建议在配置完成后先编译一个简单的Hello World程序测试一下,确保一切正常。

5. 创建和编译Qt项目

5.1 创建新项目

在Qt Creator中新建一个Qt Widgets Application项目。创建时需要注意:

  1. 项目名称不要包含中文或特殊字符
  2. 选择我们之前配置的交叉编译Kit
  3. 使用默认的构建目录

我通常会创建一个简单的界面,包含一个按钮和一个标签,用来测试基本功能是否正常。

5.2 配置项目文件

在.pro文件中,我们需要添加一些特定的配置:

# 指定目标平台 target.path = /usr/bin INSTALLS += target # 链接特定的库 LIBS += -lQt5Widgets -lQt5Gui -lQt5Core

这些配置确保我们的程序能够正确链接到目标板上的Qt库。

5.3 交叉编译项目

点击Qt Creator的"构建"按钮,程序就会开始交叉编译。编译完成后,会在构建目录下生成可执行文件。

我们可以使用file命令查看生成的文件类型:

file demo_app

应该看到类似这样的输出:

demo_app: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=..., not stripped

这表明我们成功生成了ARM架构的可执行文件。

6. 部署和测试

6.1 传输程序到开发板

有多种方式可以将程序传输到RK3568开发板:

  1. 使用scp命令:
scp demo_app user@rk3568-ip:/home/user/
  1. 使用U盘拷贝
  2. 通过NFS共享目录

我个人最喜欢用scp,简单直接。如果开发板还没有开启ssh服务,可以先通过串口登录,然后安装openssh-server:

sudo apt install openssh-server

6.2 设置运行环境

在开发板上运行Qt程序前,需要确保Qt库已经正确安装。如果使用官方镜像,通常已经包含了必要的库。如果没有,需要手动安装或拷贝Qt库到开发板。

设置库路径:

export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/qt5

6.3 运行测试

在开发板上运行程序:

./demo_app

如果一切正常,应该能看到程序界面显示出来。我在第一次测试时遇到了缺少库的问题,后来发现是因为没有正确设置LD_LIBRARY_PATH。这个经验告诉我,环境变量的设置非常重要。

7. 常见问题解决

在实际开发中,难免会遇到各种问题。这里分享几个我遇到过的典型问题及解决方法:

  1. 程序运行时报错找不到库: 检查LD_LIBRARY_PATH是否设置正确,确认开发板上确实存在所需的库文件。

  2. 界面显示异常: 可能是主题或字体问题,尝试设置QT_QPA_PLATFORM环境变量:

    export QT_QPA_PLATFORM=linuxfb
  3. 触摸屏不响应: 检查是否加载了正确的触摸驱动,可能需要设置QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS。

  4. 程序崩溃无提示: 在开发板上使用gdb调试:

    gdb ./demo_app

每次遇到问题都是学习的机会,建议养成记录问题的习惯,这样下次遇到类似情况就能快速解决。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:54:33

小白必看!PDF-Parser-1.0快速部署与使用全攻略

小白必看!PDF-Parser-1.0快速部署与使用全攻略 1. 这个工具到底能帮你解决什么问题? 你是不是也遇到过这些情况: 收到一份几十页的PDF技术文档,想快速提取其中的文字内容,却发现复制出来全是乱序、错行、夹杂乱码&a…

作者头像 李华
网站建设 2026/4/21 12:35:02

隐私无忧!Qwen2.5-0.5B本地化智能助手搭建全攻略

隐私无忧!Qwen2.5-0.5B本地化智能助手搭建全攻略 1. 开篇:你真的需要把对话发到网上吗? 你有没有过这样的时刻—— 想让AI帮你润色一封重要邮件,却犹豫要不要粘贴进网页; 想让它分析一份合同条款,又担心敏…

作者头像 李华
网站建设 2026/4/19 2:58:46

GTE模型对比实测:中文文本嵌入性能全面评测

GTE模型对比实测:中文文本嵌入性能全面评测 引言:为什么中文文本嵌入需要专门优化? 你有没有遇到过这样的问题:用英文模型处理中文,结果语义相似度计算总是“差一口气”?比如“苹果手机”和“iPhone”明明…

作者头像 李华
网站建设 2026/4/19 23:10:11

Yi-Coder-1.5B代码补全实战:VSCode配置C++开发环境

Yi-Coder-1.5B代码补全实战:VSCode配置C开发环境 1. 引言 作为一名长期使用AI辅助编程的开发者,我一直在寻找能够提升编码效率的工具。Yi-Coder-1.5B作为一款开源的代码语言模型,在代码补全方面表现出色,特别适合C这类复杂语言的…

作者头像 李华
网站建设 2026/4/17 1:14:05

一键部署多模态评估:Qwen2.5-VL让语义相关性判断更简单

一键部署多模态评估:Qwen2.5-VL让语义相关性判断更简单面向工程落地的多模态语义评估系统,无需代码即可启动,3分钟完成Query-Document相关度判定镜像名称:🧠 多模态语义相关度评估引擎 技术底座:Qwen2.5-VL…

作者头像 李华
网站建设 2026/4/16 10:49:42

STM32CUBEMX主从定时器联动实现步进电机精准定位控制

1. 主从定时器联动原理揭秘 我第一次接触步进电机控制时,被"主从定时器"这个概念绕得头晕。后来才发现,它的工作原理其实特别像工地上的两个工人配合干活。主定时器(Master)就像是个不知疲倦的打桩机,不停地…

作者头像 李华