RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
1. 环境准备宿主机Ubuntu系统配置在开始搭建Qt交叉编译环境之前我们需要确保宿主机Ubuntu系统已经做好基础配置。我建议使用Ubuntu 18.04或20.04 LTS版本这两个版本在RK3568开发社区中经过充分验证。首先更新系统软件源并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git cmake python3-dev接下来安装网络工具和文件传输工具sudo apt install -y net-tools openssh-server filezilla对于串口调试我强烈推荐安装minicomsudo apt install -y minicom sudo usermod -a -G dialout $USER # 将当前用户加入dialout组开发过程中经常需要与开发板交换文件可以安装samba服务实现文件共享sudo apt install -y samba sudo smbpasswd -a $USER # 设置samba密码提示配置完成后建议重启系统使所有变更生效。我在实际项目中遇到过多次因权限问题导致的串口访问失败都是通过上述用户组配置解决的。2. 安装桌面版Qt Creator虽然我们要搭建的是交叉编译环境但先在宿主机上安装桌面版Qt Creator有两个好处一是可以验证Qt环境是否正常二是方便开发时先在本地测试。从Qt官网下载5.14.2版本的在线安装器wget https://download.qt.io/official_releases/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.run chmod x qt-opensource-linux-x64-5.14.2.run执行安装时有个小技巧先断开网络连接可以跳过强制登录步骤。我实测这个版本在RK3568开发中最稳定./qt-opensource-linux-x64-5.14.2.run安装过程中需要选择组件Qt 5.14.2 → Desktop gcc 64-bitDeveloper and Designer Tools → Qt Creator 4.11.1安装完成后可以通过以下命令验证/opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator注意如果遇到OpenGL相关错误可能需要安装显卡驱动sudo apt install -y mesa-common-dev libgl1-mesa-dev3. 创建测试Demo工程在配置交叉编译环境前我们先创建一个简单的Hello World工程验证桌面环境。在Qt Creator中新建项目 → Application → Qt Widgets Application项目名称设为TestDemo选择Kit为Desktop Qt 5.14.2 GCC 64bit在mainwindow.cpp中添加一个全屏切换按钮QPushButton *btn new QPushButton(Toggle Fullscreen, this); connect(btn, QPushButton::clicked, [this](){ if(isFullScreen()) { showNormal(); } else { showFullScreen(); } });编译运行后点击按钮应该能看到窗口在全屏和正常模式间切换。这个简单的测试验证了我们的桌面Qt环境工作正常。4. 配置RK3568交叉编译工具链RK3568官方提供了基于buildroot的交叉编译工具链我们需要先下载并配置wget https://sdk.rock-chips.com/buildroot/qt-sdk.tar.gz tar -xzf qt-sdk.tar.gz -C ~/工具链主要包含以下组件qmakeQt项目构建工具aarch64-linux-gnu-gcc交叉编译器sysroot目标板系统库和头文件配置环境变量建议添加到~/.bashrcexport RK3568_SDK~/qt-sdk export PATH$RK3568_SDK/bin:$PATH export LD_LIBRARY_PATH$RK3568_SDK/lib:$LD_LIBRARY_PATH验证工具链aarch64-linux-gnu-gcc --version qmake -query QT_VERSION5. Qt Creator交叉编译配置在Qt Creator中添加交叉编译工具链打开工具→选项→Kits添加新的编译器名称RK3568 GCC路径选择aarch64-linux-gnu-g添加Qt版本路径选择工具链中的qmake创建新Kit名称RK3568 Buildroot设备类型通用Linux设备编译器选择刚添加的GCCQt版本选择刚添加的Qt版本我遇到过qmake路径配置错误导致编译失败的情况解决方法是在终端中手动运行qmake确认输出是否正常。6. 交叉编译测试Demo将之前创建的TestDemo项目复制一份修改.pro文件添加交叉编译配置# 添加目标平台设置 target.path /usr/bin INSTALLS target # 指定部署到开发板的路径 RK3568_DEPLOY_PATH /home/root在Qt Creator中打开项目 → 添加Kit → 选择RK3568 Buildroot构建项目在编译输出目录会生成ARM架构的可执行文件使用file命令验证file TestDemo # 应显示ELF 64-bit LSB executable, ARM aarch64...7. 部署到RK3568开发板将编译好的程序传输到开发板有多种方式我推荐使用sftpscp TestDemo root192.168.1.100:/home/root然后在开发板上运行chmod x /home/root/TestDemo ./TestDemo如果遇到缺少库的错误需要将工具链sysroot中的库文件拷贝到开发板。我通常使用以下命令同步整个Qt库rsync -avz $RK3568_SDK/sysroot/usr/lib root192.168.1.100:/usr/注意开发板存储空间有限建议只拷贝实际需要的库文件。我曾遇到过因拷贝全部库导致存储空间不足的问题。8. 常见问题解决问题1编译时报错GL/gl.h: No such file or directory解决方法安装OpenGL头文件sudo apt install -y libgl1-mesa-dev问题2运行时报错cannot find -lQt5Widgets解决方法检查工具链路径配置是否正确确保sysroot中的库文件完整。问题3开发板存储空间不足解决方法清理不需要的文件只部署必要的库文件考虑使用NFS挂载宿主机目录问题4触摸屏无响应解决方法检查开发板环境变量配置确保设置了正确的DISPLAY变量。在实际项目中我建议先编译一个极简的测试程序验证环境再逐步增加复杂度。这样可以快速定位问题是出在环境配置还是具体代码实现上。

相关新闻

1.Qt项目集成鸿蒙字体:从资源加载到全局应用实战

1.Qt项目集成鸿蒙字体:从资源加载到全局应用实战

1. Qt项目集成鸿蒙字体的必要性在开发跨平台Qt应用时,字体选择往往是个容易被忽视但极其重要的问题。我去年接手一个医疗设备项目时就踩过坑——客户反馈在鸿蒙设备上界面文字显示模糊,排查后发现是默认字体不兼容导致的。鸿蒙系统自带的HarmonyOS Sans字…

2026/7/15 20:30:11阅读更多 →
Canva 如何使用 Langfuse 打造智能体式支持体验

Canva 如何使用 Langfuse 打造智能体式支持体验

本文字数:4350;估计阅读时间:11分钟 作者:Felix Krauth 了解 Canva 四人机器学习团队如何利用 Langfuse 跨 Java 和 Python 栈的可观测性,构建了一个超越所有基线评估目标的 AI 支持体验。 关于 Canva Canva 是一个被…

2026/7/15 20:30:11阅读更多 →
exception: access violation reading 0xFFFFFFFFFFFFFFFF - 从调试器视角拆解内存访问违规

exception: access violation reading 0xFFFFFFFFFFFFFFFF - 从调试器视角拆解内存访问违规

1. 内存访问违规的本质当你在调试器中看到"exception: access violation reading 0xFFFFFFFFFFFFFFFF"这个错误时,程序实际上是在告诉你:"嘿,我试图读取一个根本不存在的内存地址!"这个特殊的地址0xFFFFFFFFF…

2026/7/15 20:25:11阅读更多 →
游戏数据损坏恢复指南:从技术排查到备份策略

游戏数据损坏恢复指南:从技术排查到备份策略

那天下午,我正埋头调试一段特别顽固的代码,隔壁工位的同事突然发出一声哀嚎——他连续奋战了十几个小时的游戏存档,在更新后提示“数据损坏,无法读取”。那一瞬间,他脸上的表情,从难以置信到绝望&#xff0…

2026/7/15 21:25:18阅读更多 →
从安装到调用一步到位:Hermes AI Agent保姆级教程(2026亲测可用)

从安装到调用一步到位:Hermes AI Agent保姆级教程(2026亲测可用)

前言 最近AI Agent工具更新得真快,刚熟悉“养虾”(OpenClaw),又冒出了“养马”(Hermes)。不少朋友想试试这个以“记忆强、会进化”为特色的框架,却卡在安装配置上。这篇文章就把从下载安装到模…

2026/7/15 21:25:18阅读更多 →
TUSB8044A USB集线器配置寄存器详解与I2C/SMBus编程实战

TUSB8044A USB集线器配置寄存器详解与I2C/SMBus编程实战

1. 项目概述与核心价值在嵌入式硬件和USB外设开发领域,尤其是设计USB 3.2集线器或扩展坞时,我们常常会遇到一个核心需求:如何让同一颗硬件芯片,在不同的产品形态和应用场景下,表现出不同的“性格”?这里的“…

2026/7/15 21:25:18阅读更多 →
Cursor AI状态管理失效的7个隐秘征兆:92%的团队在第3步就已失控,你中招了吗?

Cursor AI状态管理失效的7个隐秘征兆:92%的团队在第3步就已失控,你中招了吗?

更多请点击: https://codechina.net 第一章:Cursor AI状态管理失效的真相与认知重构 Cursor AI 的状态管理失效并非源于工具本身的崩溃,而是开发者对“AI 驱动状态”的隐式假设与实际运行时行为之间存在根本性错位。当用户在编辑器中依赖 Cu…

2026/7/15 21:25:18阅读更多 →
【限时解密】ChatGPT职业规划私域模型:仅开放给前500名读者的8维能力图谱+动态适配算法

【限时解密】ChatGPT职业规划私域模型:仅开放给前500名读者的8维能力图谱+动态适配算法

更多请点击: https://codechina.net 第一章:ChatGPT职业规划私域模型的底层逻辑与价值定位 ChatGPT职业规划私域模型并非简单地将大语言模型接入求职场景,而是以“用户职业生命周期”为轴心,构建具备数据主权、行为闭环与认知迭代…

2026/7/15 21:25:18阅读更多 →
软件环境配置和git操作

软件环境配置和git操作

一、下载的软件 1.python解析器 2.MySQL8数据库 3.codex和Trae cn AI agent 4.Gitgitee 如何检验是否安装成功 1.python和mysql2.codex和trae 只需看到应用图标 3.git 在桌面任意地方右键 点击显示更多选项 看到两个git图表即可 或者 4.gitee 登录账号 二、各软件的作用…

2026/7/15 21:20:17阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →