如何使用QtCreator远程调试图形应用程序?

时间:2017-12-15 18:32:22

标签: c++ qt ssh qt-creator

我开发了一个跨平台的Qt应用程序。现在我需要/想要在GUI表单加载的远程主机上运行它 我知道有两种方法可以做到:

  • 在远程显示器上打开应用程序(可能是虚拟的),控制台通过ssh
  • 连接到QtCreator
  • 使用远程X会话运行,就像使用ssh -X-Y
  • 一样

当我通过远程设备上的QtCreator运行应用程序时,它说

QXcbConnection: Could not connect to display

当我使用ssh -Y连接到远程主机并运行我的应用时,它会显示

QXcbConnection: Could not connect to display localhost:10.0
Aborted

在我的本地主机和远程主机上通过VNC,应用程序运行正常。

ssh -Y user@host xclock也可以正常工作 - 在我的本地展示中打开它的形式。

主机系统是 Ubuntu 16.04 LTS x64 ,目标系统 Ubuntu 16.04 LTS x86 32位。 Qt版本5.9.1

请帮助我让它发挥作用。在最坏的情况下,我同意看到调试控制台和gdb连接到QtCreator,但GUI仍然可以放在远程显示器上。

更新: 以下是form.qt.io上的相关问题。

1 个答案:

答案 0 :(得分:0)

经过QtCreator社区的一些研究和帮助,我找到了 方式很简单:

  1. 打开启用了X转发的远程主机的ssh会话ssh -X user@host。并了解DISPLAY变量。例如echo $DISPLAY。它应该看起来像localhost:10.0
  2. 在QtCreator中设置环境变量DISPLAY - > 项目 - >你的配置 - >运行 - > RunEnvironment 从(1)。
  3. 到已知值
  4. 在本地计算机上使用GUI运行并享受远程调试。
  5. 注意:关闭ssh会话会使转发显示无法访问且无效。