news 2026/5/7 3:41:47

保姆级教程:在Ubuntu上为RK3568配置Qt Creator交叉编译环境(含SSH远程部署)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在Ubuntu上为RK3568配置Qt Creator交叉编译环境(含SSH远程部署)

保姆级教程:在Ubuntu上为RK3568配置Qt Creator交叉编译环境(含SSH远程部署)

嵌入式开发的世界里,RK3568凭借其强大的性能和丰富的接口资源,正成为越来越多项目的首选平台。而Qt Creator作为跨平台的集成开发环境,其直观的界面设计和强大的调试功能,让嵌入式应用开发变得事半功倍。本文将带你从零开始,在Ubuntu系统上搭建完整的Qt Creator交叉编译环境,并实现应用程序的SSH远程部署到RK3568设备。

1. 环境准备与Qt Creator安装

在开始配置之前,我们需要确保Ubuntu系统已经安装了必要的依赖项。打开终端,执行以下命令安装基础工具链:

sudo apt update sudo apt install -y build-essential cmake git libgl1-mesa-dev

对于Qt Creator的安装,官方提供了多种方式。这里推荐使用在线安装器,它能自动处理依赖关系并保持版本更新:

wget https://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run chmod +x qt-unified-linux-x64-online.run ./qt-unified-linux-x64-online.run

安装过程中有几个关键选择需要注意:

  • 选择Qt CreatorQt 5.15.x版本(目前最稳定的LTS版本)
  • 勾选Desktop gcc组件(用于本地测试)
  • 在Additional Libraries中确保Qt ChartsQt Quick Controls 2被选中

安装完成后,建议创建一个工作目录来存放后续的交叉编译工具链和项目文件:

mkdir -p ~/rk3568_qt cd ~/rk3568_qt

2. 获取并配置Buildroot交叉编译工具链

RK3568采用ARM64架构,我们需要对应的交叉编译工具链。Buildroot是一个优秀的嵌入式Linux系统构建工具,它生成的工具链与RK3568官方SDK完美兼容。

首先获取Buildroot源代码:

git clone https://git.buildroot.net/buildroot cd buildroot

配置Buildroot以包含Qt5支持:

make menuconfig

在配置界面中,需要特别关注以下几个选项:

  1. Target optionsTarget Architecture选择AArch64 (little endian)
  2. ToolchainC library选择glibc
  3. Target packagesGraphic libraries→ 启用Qt5并选择需要的模块

配置完成后,开始编译工具链:

make -j$(nproc)

编译完成后,工具链包会生成在output/images/目录下,文件名类似aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz。将其解压并安装:

tar -xzf aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz -C ~/rk3568_qt cd ~/rk3568_qt/aarch64-buildroot-linux-gnu_sdk-buildroot ./relocate-sdk.sh

3. Qt Creator交叉编译环境配置

现在进入Qt Creator进行交叉编译环境的配置。打开Qt Creator后,按照以下步骤操作:

3.1 添加交叉编译器

  1. 进入工具 → 选项 → Kits → 编译器
  2. 点击添加按钮,选择GCC (C)
  3. 路径中选择工具链中的gcc:~/rk3568_qt/aarch64-buildroot-linux-gnu_sdk-buildroot/usr/bin/aarch64-buildroot-linux-gnu-gcc
  4. 重复上述步骤添加GCC (C++),选择对应的g++编译器

3.2 配置qmake

  1. Qt Versions标签页点击添加
  2. 选择工具链中的qmake:~/rk3568_qt/aarch64-buildroot-linux-gnu_sdk-buildroot/usr/bin/qmake
  3. 为这个Qt版本命名,如"Qt 5.15.2 (RK3568)"

3.3 创建构建套件(Kit)

  1. Kits标签页点击添加
  2. 配置以下参数:
    • 名称: RK3568 Qt Kit
    • 设备类型: 通用Linux设备
    • 编译器(C): 之前添加的GCC (C)
    • 编译器(C++): 之前添加的GCC (C++)
    • Qt版本: 选择刚配置的Qt版本
    • Qt mkspec: linux-aarch64-gnu-g++

配置完成后,可以通过创建一个简单的Qt Widgets项目来测试套件是否工作正常。

4. SSH远程部署配置

要让Qt Creator能够将编译好的应用程序部署到RK3568设备上,需要进行SSH配置。

4.1 设备端准备

首先确保RK3568设备已经启动SSH服务并设置了静态IP。在设备终端执行:

sudo systemctl enable ssh sudo systemctl start ssh ifconfig eth0 192.168.1.100 netmask 255.255.255.0

4.2 Qt Creator设备配置

  1. 进入工具 → 选项 → 设备 → 添加
  2. 选择通用Linux设备
  3. 填写设备信息:
    • 名称: RK3568 Dev Board
    • 主机名: 192.168.1.100
    • 用户名: root
    • 认证类型: 密码认证
    • 密码: rockchip(默认密码)

4.3 部署设置

在项目配置中,添加部署步骤:

  1. 项目视图的运行设置中,选择部署配置
  2. 添加上传文件步骤,将可执行文件上传到设备上的/usr/local/bin
  3. 添加执行命令步骤,设置可执行文件的权限:chmod +x /usr/local/bin/your_app

5. 常见问题解决方案

在实际部署过程中,可能会遇到以下典型问题:

5.1 EGLFS插件缺失

错误信息:

qt.qpa.plugin: Could not find the Qt platform plugin "eglfs"

解决方案:

  1. 在设备上检查可用的平台插件:
    ls /usr/lib/qt/plugins/platforms/
  2. 如果缺少eglfs,可以:
    • 使用其他可用插件,如-platform linuxfb
    • 或者在Buildroot配置中重新编译包含eglfs的Qt

5.2 XDG_RUNTIME_DIR错误

错误信息:

error: XDG_RUNTIME_DIR is invalid or not set in the environment.

解决方案: 在Qt Creator的运行配置中添加环境变量:

XDG_RUNTIME_DIR=/tmp

5.3 字体显示问题

如果应用程序中的字体显示异常,可以在设备上安装字体:

apt install ttf-dejavu

或者在代码中指定字体路径:

QFontDatabase::addApplicationFont("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf");

6. 高级调试技巧

为了更高效地开发和调试RK3568上的Qt应用,可以考虑以下技巧:

6.1 远程调试

  1. 在设备上安装gdbserver:
    apt install gdbserver
  2. 在Qt Creator中配置远程调试:
    • 项目运行设置中,选择调试服务器
    • 设置gdbserver路径为/usr/bin/gdbserver

6.2 性能分析

使用Qt Creator内置的性能分析工具:

  1. 分析菜单中选择QML ProfilerValgrind Memcheck
  2. 确保设备上安装了对应的调试符号

6.3 自定义部署脚本

对于复杂的部署需求,可以创建自定义脚本:

#!/bin/bash # deploy.sh scp $1 root@192.168.1.100:/usr/local/bin/ ssh root@192.168.1.100 "chmod +x /usr/local/bin/$1"

然后在Qt Creator的部署步骤中调用这个脚本。

7. 项目优化建议

当项目规模增大时,需要考虑以下优化措施:

7.1 编译加速

~/.config/QtProject/qtcreator.ini中添加:

[CMake] NinjaPath=/usr/bin/ninja

然后重新生成项目,Qt Creator将使用ninja代替make,显著提升编译速度。

7.2 资源管理

对于嵌入式设备,资源使用需要特别注意:

  • 使用rcc将资源文件编译进二进制
  • .pro文件中添加:
    RESOURCES += resources.qrc CONFIG += resources_big

7.3 内存优化

在RK3568上运行Qt应用时,可以通过以下方式减少内存占用:

  • 使用QML_COMPILER_DISABLE_CACHE环境变量
  • main.cpp中添加:
    QCoreApplication::setAttribute(Qt::AA_DisableShaderDiskCache);

经过以上步骤,你应该已经建立了一个完整的RK3568 Qt开发环境。在实际项目中,根据具体需求可能还需要调整一些配置参数。建议在项目初期就建立完整的持续集成流程,将交叉编译和自动化测试纳入其中,这能显著提高开发效率。

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

魔兽争霸III终极优化指南:5分钟解决所有游戏兼容性问题

魔兽争霸III终极优化指南:5分钟解决所有游戏兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸III》在现代电脑上…

作者头像 李华
网站建设 2026/5/7 3:38:51

终端AI助手Term_ChatGPT:命令行集成大模型提升开发效率

1. 项目概述:一个终端里的AI对话伙伴 如果你和我一样,大部分工作时间都泡在终端里,那你肯定也经历过这种场景:写脚本卡壳了,想查个命令的用法,或者需要快速生成一段正则表达式,不得不频繁地在终…

作者头像 李华
网站建设 2026/5/7 3:34:27

企业内网应用如何安全调用 Taotoken 提供的大模型能力

企业内网应用如何安全调用 Taotoken 提供的大模型能力 1. 企业级集成的基本安全考量 在企业内网环境中集成第三方AI服务时,数据安全与访问控制是需要优先考虑的因素。Taotoken平台提供了API Key管理、访问日志记录等企业级功能,可以与内网安全架构配合…

作者头像 李华
网站建设 2026/5/7 3:32:29

2025年各国地理距离、与中国地理距离

数据介绍 各国地理距离、与中国地理距离,国家与国家之间的地理距离,两国之间是否存在共同边界,两国之间是否存在共同语言,两国之间是否存在殖民等。处理后得到中国对各国的地理距离,共同边界,共同语言等。…

作者头像 李华