我开发了一个跨平台的 Qt 应用程序。现在我需要/想要在远程主机上运行它并加载 GUI 表单。
我知道有两种方法可以做到这一点:
- 通过连接到 QtCreator 的控制台在远程显示器(可能是虚拟的)上打开应用程序
ssh
- 使用远程 X 会话运行,就像使用
ssh -X
or -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 仍然可以放置在远程显示器上。
更新:
这是相关问题表单.qt.io https://forum.qt.io/topic/86047/how-to-make-qtcreator-to-connect-to-a-remote-device-generic-linux-with-x-forwarding-enabled-ssh-x/3.
经过一些研究和 QtCreator 社区的帮助后我发现
方法很简单:
- 打开与启用 X 转发的远程主机的 ssh 会话
ssh -X user@host
。并了解DISPLAY
多变的。例如与echo $DISPLAY
。它应该看起来像localhost:10.0
.
- 设置环境变量
DISPLAY
在 QtCreator 中->项目 -> 你的配置 -> 运行 -> 运行环境到(1)中的已知值。
- Run and enjoy在本地计算机上使用 GUI 进行远程调试。
注意:关闭 ssh 会话将使转发的显示无法访问且无效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)