基于QT Creator通过SSH远程调试树莓派GUI程序的可行性咨询
如何在VirtualBox Ubuntu主机上通过SSH+Qt Creator远程调试树莓派的GUI程序
完全可以实现,以下是具体操作步骤:
一、配置SSH X11转发(实现GUI跨设备显示)
要让树莓派运行的GUI程序显示在Ubuntu主机上,需开启SSH的X11转发功能:
- 登录树莓派,编辑SSH配置文件:
确保以下配置项启用(去掉注释并修改对应值):sudo nano /etc/ssh/sshd_config
保存后重启SSH服务:X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost nosudo systemctl restart sshd - 在VirtualBox的Ubuntu主机上,用带X11转发的命令连接树莓派:
(内网环境可改用ssh -X pi@<你的树莓派IP>-Y参数,信任X11转发连接,减少权限问题) - 测试转发是否生效:在SSH会话中输入
xeyes,若Ubuntu桌面弹出带眼睛的窗口,说明配置成功。
二、配置Qt Creator远程调试环境
1. 添加远程树莓派设备
打开Qt Creator,按路径操作:工具 → 选项 → 设备 → 添加
选择Generic Linux Device,输入树莓派的IP、用户名(默认pi)、密码,点击测试连接,确认成功后保存设备配置。
2. 设置远程工具链
进入工具 → 选项 → 构建和运行 → 工具链:
- 点击
添加→GCC,在编译器路径中选择远程树莓派上的gcc路径(一般为/usr/bin/gcc),通过已添加的远程设备访问 - 同理添加g++,路径设为
/usr/bin/g++,完成后保存工具链。
3. 配置远程调试器
在构建和运行 → 调试器页面:
- 点击
添加→GDB,选择远程树莓派上的gdb路径(一般为/usr/bin/gdb),通过远程设备访问,保存调试器配置。
4. 创建远程调试套件(Kit)
进入构建和运行 → 套件页面:
- 点击
添加,给套件命名(比如Raspberry Pi Remote) - 设备选择已添加的树莓派,工具链选刚配置的远程gcc/g++,调试器选远程gdb
- Qt版本选择树莓派上的原生Qt(路径一般为
/usr/lib/qt5/bin/qmake),若树莓派未安装Qt,先执行sudo apt install qtbase5-dev qt5-default安装。
5. 项目的远程构建与运行配置
打开你的Qt项目,切换到左侧项目选项卡:
- 选择刚才创建的
Raspberry Pi Remote套件 - 在
构建部分,设置远程构建目录(比如/home/pi/Projects/MyApp),Qt Creator会自动同步本地代码到树莓派的该目录 - 在
运行部分,设置运行命令为远程目录下的可执行文件路径(比如/home/pi/Projects/MyApp/build-MyApp-Release/MyApp) - 环境变量无需额外设置,SSH的X11转发会自动传递
DISPLAY变量,确保GUI显示在Ubuntu主机上。
三、开始远程调试
- 选择远程套件,点击
构建,Qt Creator会同步代码到树莓派并完成远程编译 - 点击
调试按钮,程序会在树莓派上运行,GUI窗口直接显示在VirtualBox的Ubuntu桌面,你可像本地调试一样设置断点、查看变量、单步执行。
常见问题处理
- GUI无法显示:检查树莓派是否安装
xauth(执行sudo apt install xauth),或手动在Qt Creator的运行环境变量中添加DISPLAY=:10 - 编译报错:确保树莓派安装了所有Qt依赖库,比如
sudo apt install qt5-widgets5-dev(根据GUI组件调整) - 卡顿问题:用
ssh -C -X连接树莓派,开启传输压缩优化速度
内容的提问来源于stack exchange,提问作者Mykola Levun
相关产品推荐
相关产品推荐

