news 2026/2/14 23:10:32

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/2/14 18:05:19

2026 计算机就业真相:数据背后的结构性分化与突围指南

一、就业率波动:表象与深层逻辑 根据教育部《2025年中国高校毕业生就业质量报告》及麦可思研究院联合采样数据,计算机大类整体就业率虽保持88.3%的较高水平,但细分领域呈现显著分化: 1. 人工智能领域:就业率达93.7%&…

作者头像 李华
网站建设 2026/2/12 21:47:20

MockMultipartFile的边界探索:测试之外的生产环境替代方案

MultipartFile工业级实践:超越Mock测试的生产环境解决方案 在当今的Web应用开发中,文件上传功能几乎成为了标配需求。Spring框架提供的MultipartFile接口为开发者处理文件上传提供了便利,但当我们从测试环境转向生产环境时,往往会…

作者头像 李华
网站建设 2026/2/10 21:58:47

音乐格式转换:打破NCM加密限制的完整解决方案

音乐格式转换:打破NCM加密限制的完整解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经历过这样的时刻:当你在车载系统插入U盘却发现精心下载的网易云音乐无法播放?当你换了新手机…

作者头像 李华
网站建设 2026/2/10 18:28:32

三步掌握高效视频资源管理:从工具选择到批量下载

三步掌握高效视频资源管理:从工具选择到批量下载 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff09…

作者头像 李华
网站建设 2026/2/11 6:31:14

AcousticSense AI镜像免配置:预装torch27环境与ccmusic-database权重

AcousticSense AI镜像免配置:预装torch27环境与ccmusic-database权重 1. 什么是AcousticSense AI?——让AI“看见”音乐的听觉工作站 你有没有想过,一段音乐不只是耳朵在听,它其实也能被“看见”? AcousticSense AI…

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

零基础教程:手把手教你用Qwen2.5-0.5B打造本地智能对话系统

零基础教程:手把手教你用Qwen2.5-0.5B打造本地智能对话系统 你是否想过,不依赖任何云服务、不上传一句聊天记录,就能在自己的笔记本上运行一个真正“懂你”的AI助手?不需要显卡发烧配置,不用折腾CUDA环境变量&#xf…

作者头像 李华