You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于QT Creator通过SSH远程调试树莓派GUI程序的可行性咨询

如何在VirtualBox Ubuntu主机上通过SSH+Qt Creator远程调试树莓派的GUI程序

完全可以实现,以下是具体操作步骤:

一、配置SSH X11转发(实现GUI跨设备显示)

要让树莓派运行的GUI程序显示在Ubuntu主机上,需开启SSH的X11转发功能:

  • 登录树莓派,编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
    
    确保以下配置项启用(去掉注释并修改对应值):
    X11Forwarding yes
    X11DisplayOffset 10
    X11UseLocalhost no
    
    保存后重启SSH服务:
    sudo 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:52:33