概述
Qt-Creator 是 Qt 官方提供的跨平台 IDE,集代码编辑、构建、调试和部署于一体。在嵌入式开发中,其核心价值在于 Kit(套件)机制——通过配置交叉编译器、调试器和 Qt 版本,开发者可以在开发机(Ubuntu 虚拟机)上编写代码,一键交叉编译出目标板可运行的 ARM64 二进制文件。
本章基于 Buildroot Qt 编译环境 构建的软件栈,在 Qt-Creator 19.0.0 中创建 Buildroot 交叉编译 Kit。
| Kit | 编译器 | Qt 版本来源 |
|---|---|---|
| RK3576 Buildroot Qt5 | Buildroot GCC 12.4.0 | Buildroot 编译产物中的 qmake |
前置条件: 已按照 Buildroot Qt 编译环境 完成环境构建。
安装 Qt-Creator 19.0.0
获取安装包
从下载页面获取:
qt-creator-opensource-linux-x86_64-19.0.0.runQt-Creator 社区版免费使用,可以直接下载安装包。
安装步骤
特别说明
记得提前去 官网 注册一个 Qt 账号,安装过程中会提示登录,注册后直接登录即可,无需订阅任何付费服务。
直接在桌面找到 qt-creator-opensource-linux-x86_64-19.0.0.run 安装包,右键 → Run或Run as a program,直接运行安装包。
安装向导中所有选项保持默认,按提示点击 Next → Install 完成安装,默认安装目录为 ~/qtcreator-19.0.0/。
系统依赖
安装完成后,可以直接在软件列表中启动 Qt Creator:
如果启动时提示缺少共享库,安装以下依赖:
sudo apt update && \
sudo apt install libxcb-xinerama0 libgl1-mesa-glx libxcb-cursor0 \
libfontconfig1 libxkbcommon-x11-0 libncursesw5 \
libpython2.72
3
4
配置编译器
菜单路径: Edit → Preferences → Kits → Compilers → Add → GCC → C
| 配置项 | 值 |
|---|---|
| Name | RK3576 Buildroot GCC |
| Compiler path | /home/lckfb/TaishanPi-3-Linux/buildroot/output/rockchip_rk3576/host/bin/aarch64-buildroot-linux-gnu-gcc |
点击 Apply 保存。Qt-Creator 会自动检测同目录下的 C++ 编译器(aarch64-buildroot-linux-gnu-g++)并添加,无需手动重复添加。
不要手动添加 C++ 编译器
Qt-Creator 19.0.0 在检测到重复编译器时会弹出 "Duplicate compilers detected" 提示,随后整个程序崩溃退出。只需添加 C 编译器,C++ 编译器由 Qt-Creator 自动识别。
如果已经触发崩溃,重新打开 Qt-Creator 即可,重复的编译器条目不会被保存。
Abi 列应显示 aarch64-linux-generic-...,路径右侧显示绿色对勾表示识别成功。点击 Apply 保存
配置 Debugger
菜单路径: Edit → Preferences → Kits → Debuggers → Add
| 配置项 | 值 |
|---|---|
| Name | RK3576 GDB |
| Path | /home/lckfb/TaishanPi-3-Linux/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-rockchip1031-linux-gnu-gdb |
如果 Qt-Creator 提示无法识别 GDB 类型,是因为该 GDB 依赖旧版库。执行以下命令安装:
bashsudo apt install -y libncursesw5 libpython2.71
点击 Apply 保存。
关于 GDB 来源
Buildroot 默认不编译交叉 GDB,使用 SDK 预置的 GDB 即可。详见部署运行调试 — GDB 远程调试。
配置 Qt Version
菜单路径: Edit → Preferences → Kits → Qt Versions → Add
在文件选择对话框中导航到 Buildroot 构建输出的 qmake:
/home/lckfb/TaishanPi-3-Linux/buildroot/output/rockchip_rk3576/host/bin/qmake点击 Apply 保存。Qt-Creator 会自动识别 Qt 版本号(5.15.11)并显示在列表中。
注意: 此路径在 Buildroot 编译完成后才存在。
创建 Kit
菜单路径: Edit → Preferences → Kits → Kits → Add
| 配置项 | 值 |
|---|---|
| Name | RK3576 Buildroot Qt5 |
| Compiler: C | RK3576 Buildroot GCC |
| Compiler: C++ | RK3576 Buildroot G++(自动检测生成) |
| Debugger | RK3576 GDB |
| Qt version | Qt 5.15.11 (host)(上一步添加的) |
| CMake Tool | 系统 cmake(/usr/bin/cmake) |
| Sysroot | /home/lckfb/TaishanPi-3-Linux/buildroot/output/rockchip_rk3576/host/aarch64-buildroot-linux-gnu/sysroot |
在 Kit 下方的 【CMake Configuration】 -> 【Change】 -> 【Additional CMake options】 中填入:
注意:如果用户名不是
lckfb,请将路径中的lckfb替换为你的实际用户名。
-DCMAKE_TOOLCHAIN_FILE=/home/lckfb/TaishanPi-3-Linux/buildroot/output/rockchip_rk3576/host/share/buildroot/toolchainfile.cmake点击 Apply。然后回到 Kits 页面,再次点击 Apply 保存整个 Kit 配置。
配置远程设备
Qt-Creator 通过 Remote Linux Device 管理 SSH 连接,用于后续的部署和远程调试。
菜单路径: Edit → Preferences → Devices → Add → Remote Linux Device
按向导填写:
| 配置项 | 值 |
|---|---|
| Name | TaishanPi3M Board |
| Host name | 板子 IP 地址 |
| Username | root |
| Authentication | SSH Key |
填写完成后进入 Key Deployment 页面,之前在 通信通道 中已经在虚拟机中配置过 SSH 公钥推送到板子上了(ssh-copy-id),防止意外我们再次点击 Deploy Public Key 将公钥推送一次,确保 SSH 连接正常。
Finish 验证连接,显示 "Device test finished successfully" 表示配置正确。
最后回到 Devices 页面,点击 Apply 保存整个配置。
创建项目并编译
菜单路径: File → New Project... → Qt Widgets Application
步骤:
- 创建项目,命名为
tspi-sysmonitor,选择合适的存储路径 - Build System 选择 CMake with Qt 5 Compatibility
- 在 Translations 页面保持默认
- Kit Selection 页面只勾选
RK3576 Buildroot Qt5 - 接下来就一路 Next → Finish 创建项目,Qt-Creator 会自动生成 CMakeLists.txt 和 .pro 文件。
等待一会儿,会自动创建项目。
编译快捷键 Ctrl+B。
编译完成后验证产物架构:
file tspi-sysmonitor/build/RK3576_Buildroot_Qt5-Debug/tspi-sysmonitor
# 预期: ELF 64-bit LSB executable, ARM aarch64 ...2
若显示 x86-64,说明 Kit 的编译器配置有误,需回到「配置编译器」节检查。
远程调试配置(可选)
远程调试先不急配置,推荐在开发初期先验证编译和部署流程,等熟悉后再配置远程调试。远程调试需要在板子上启动 gdbserver,并确保开发机(Ubuntu 虚拟机)与板子网络连通。
远程调试使用 gdbserver,开发机(Ubuntu 虚拟机)Qt-Creator 通过 TCP 连接板端调试服务。
板端启动 gdbserver
# 在板子上执行
gdbserver :2345 /root/tspi-sysmonitor2
输出 Listening on port 2345 表示就绪。
若板子没有 gdbserver,在 menuconfig 中启用
BR2_PACKAGE_GDB_SERVER=y后重新构建。
Qt-Creator 连接
菜单路径: Debug → Start Debugging → Attach to Running Debug Server
| 配置项 | 值 |
|---|---|
| Kit | RK3576 Buildroot Qt5 |
| Host address | 板子 IP 地址 |
| Server port | 2345 |
| Local executable | 开发机(Ubuntu 虚拟机)构建目录中的二进制文件路径 |
点击 Start Debugging,Qt-Creator 切换到调试视图,可设置断点、单步执行、查看变量。
注意: 调试版本编译时需保留符号(CMake Debug 模式默认包含
-g),不要对二进制执行 strip。
常见问题
Q1:编译产物是 x86-64 而非 ARM64
Kit 的 Compiler 配置错误,确认 C/C++ 编译器选择的是 RK3576 Buildroot GCC/G++ 而非开发机编译器。
Q2:CMake 配置时找不到 Qt5
在 Kit 的 Additional CMake options 中添加:
-DCMAKE_PREFIX_PATH=/home/lckfb/TaishanPi-3-Linux/buildroot/output/rockchip_rk3576/staging/usr/lib/cmakeQ3:qmake 路径不存在
buildroot/output/rockchip_rk3576/host/bin/qmake 在 Buildroot 编译完成后才会生成,需先完成 Buildroot 构建。
Q4:gdbserver 无法连接
检查板子防火墙是否放行 2345 端口,以及开发机(Ubuntu 虚拟机)与板子是否在同一网段。可用 telnet <板子IP> 2345 测试端口连通性。
Q5:Qt-Creator 启动时闪退或报 xcb 错误
安装本章「系统依赖」小节列出的依赖包,或尝试以 -platform xcb 参数启动 Qt-Creator。