news 2026/5/1 7:14:30

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/5/1 4:58:07

高效社交媒体数据采集全攻略:零基础掌握Python数据爬取工具

高效社交媒体数据采集全攻略:零基础掌握Python数据爬取工具 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在数字化时代,社交媒体平台蕴含着海量有价…

作者头像 李华
网站建设 2026/5/1 4:57:57

Windows Subsystem for Android创新实践:从认知到突破的全方位指南

Windows Subsystem for Android创新实践:从认知到突破的全方位指南 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 在数字化工作流日益融合的今天…

作者头像 李华
网站建设 2026/4/27 3:36:12

Emotion2Vec+模型加载慢怎么办?首次运行加速小技巧

Emotion2Vec模型加载慢怎么办?首次运行加速小技巧 Emotion2Vec Large语音情感识别系统在首次启动时需要加载约1.9GB的深度学习模型,导致初次识别耗时5-10秒。这个等待过程对用户体验影响明显——尤其当开发者想快速验证功能、测试音频效果或进行二次开发…

作者头像 李华
网站建设 2026/4/16 17:27:37

微信支付APIv3必填字段校验:如何解决sub_mchid映射失败问题

1. 微信支付APIv3必填字段校验问题解析 最近在对接微信支付APIv3时,不少开发者都遇到了"输入源/body/sub_mchid映射到字段子商户号必填性规则校验失败"的错误提示。这个错误看似简单,但背后涉及微信支付APIv3的多个关键机制。 首先需要明确的…

作者头像 李华
网站建设 2026/4/30 8:24:20

3步解决ComfyUI界面异常:按钮不显示问题深度排查指南

3步解决ComfyUI界面异常:按钮不显示问题深度排查指南 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 在使用ComfyUI-Manager过程中,部分用户反馈遇到了ComfyUI界面异常问题:界面按钮…

作者头像 李华
网站建设 2026/4/30 17:01:38

VibeVoice Pro在智能客服中的落地实践:毫秒级响应语音助手搭建案例

VibeVoice Pro在智能客服中的落地实践:毫秒级响应语音助手搭建案例 1. 为什么智能客服需要“会说话”的新引擎? 你有没有遇到过这样的客服场景:用户刚说完问题,系统却要等2秒才开始回应?或者在多轮对话中&#xff0c…

作者头像 李华