RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试 📅 2026/7/15 20:30:12 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变量。在实际项目中我建议先编译一个极简的测试程序验证环境再逐步增加复杂度。这样可以快速定位问题是出在环境配置还是具体代码实现上。