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

2023-12-31

我开发了一个跨平台的 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 社区的帮助后我发现
方法很简单:

  1. 打开与启用 X 转发的远程主机的 ssh 会话ssh -X user@host。并了解DISPLAY多变的。例如与echo $DISPLAY。它应该看起来像localhost:10.0.
  2. 设置环境变量DISPLAY在 QtCreator 中->项目 -> 你的配置 -> 运行 -> 运行环境到(1)中的已知值。
  3. Run and enjoy在本地计算机上使用 GUI 进行远程调试。

注意:关闭 ssh 会话将使转发的显示无法访问且无效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用QtCreator远程调试图形应用程序? 的相关文章

随机推荐

  • 如何在 R 中为 tableGrob 自定义特定列?

    我正在寻找自定义 tableGrob 中的特定列 对于这个可重现的示例 我选择查看自定义理由 假设您有以下数据框 df lt data frame Order c 1 3 Name c Adam Ben Charlie Score c 4
  • 为 R 中具有相同符号的连续数字的每个范围分配一个值

    我正在尝试创建一个数据框 其中存在一列 该列保存表示正数和负数的运行长度的值 如下所示 Time V Length 0 5 2 1 5 1 0 1 1 5 1 5 0 0 0 2 0 2 1 0 2 5 0 0 0 3 0 1 1 75 3
  • PHP exec() 未在输出中返回错误消息

    我正在尝试以 XML 格式获取 svn 命令的某些输出 当我输入有效参数时输出正常 但是 当我输入错误的密码时 输出不会显示错误消息 这是 PHP 代码 exec usr bin svn username something passwor
  • Laravel 4 分页计数

    我在我的特定视图 站点中设置了分页 并且它有效 问题是我有一个 php 计数器 foreach players as player tr td count td 每当我切换页面时 它都会从 1 开始 我怎样才能改变这一点 为了实现这一点 您
  • Selenium 不使用 InternetExplorerDriver 单击按钮的解决方法

    我在网页上有一个按钮 当我通过 IE 运行时 Webdriver 不会单击该按钮 我已经尝试了以下解决方法 但没有成功 通过 JavaScript 点击 JavascriptExecutor driver executeScript arg
  • 在 C 中使用 strncpy 更有效地复制 n 个字符

    我想知道是否有一种更干净 更有效的方法来执行以下操作strncpy考虑到max字符数 我觉得自己做得太过分了 int main void char string hello world foo int max 5 char str mall
  • 从类访问 LocationManager/ LocationListener

    我有点迷失在这里 在我的主要活动中 我注册了一个 LocationManager 并将其连接到 LocationListener 以使用 myLocation getLatitude 等 现在我需要使用另一个类中的 Location 方法
  • 数据注释或应用程序验证块

    DataAnnotations 和应用程序验证块有什么区别 DataAnnotations 是一个基于属性的模型 用于 注释 数据 它位于 NET 框架本身中 它最明显的用途是验证 例如 ASP NET MVC 所做的那样 Validati
  • biglm 和 lm 之间的 AIC 不同

    我一直在尝试使用 biglm 在大型数据集 大约 60 000 000 行 上运行线性回归 我想用AIC来进行模型选择 然而 当我在较小的数据集上使用 biglm 时 我发现 biglm 返回的 AIC 变量与 lm 返回的变量不同 这甚至
  • 如何确定隐藏/溢出文本是在元素的顶部还是底部

    我想扩展 Shog9 的答案 如何从javascript判断html元素是否有溢出内容 https stackoverflow com questions 143815 how to determine from javascript if
  • SQL 查询忽略相邻的匹配行

    我有一个活动表 其中包含各种活动和哈希值 actorEntity subjectEntity activity type 在某些情况下 用户可能会在几秒钟内执行完全相同的活动两次 这意味着数据库中会有两个相邻的行具有完全相同的数据 对于某些
  • Objective-C 中的“isa”变量是否等于 Java 中的“instanceof”

    简单的问题 Objective C 中的 isa 实例变量提供与 Java 中的 instanceof 运算符相同的功能是否公平 这些是不同的概念 一个是一个member一个结构体 而另一个是一个operator 模仿严格的解释instan
  • 如何创建一个仅在其类型具有特定成员函数时才编译的类? [复制]

    这个问题在这里已经有答案了 我有一个名为has f我希望它只接受具有以下内容的模板参数f成员函数 我该怎么做呢 这是我尝试过的 template
  • 在 Ruby 中将转义的 unicode (\u008E) 转换为重音字符 (Ž)?

    我对此感到非常困难 contained within MA u008EEIKIAI should be MA EIKIAI nature of string p string3 MA u008EEIKIAI puts string3 MAE
  • 使用 LAPACK 访问子矩阵

    LAPACK 中有一个函数可以给我特定子矩阵的元素吗 如果是的话 C 的语法是什么 或者我需要编码吗 没有用于访问子矩阵的函数 然而 由于 LAPACK 例程中矩阵数据的存储方式 您不需要它 这节省了大量的复制工作 并且 部分 选择了数据布
  • 如何从控制器返回通用响应?

    Net Core 应用程序并调用其他 Net Core Web API 应用程序 我正在调用控制器方法如下 public async Task
  • 使用 java 将 .cer 转换为 .jks

    我想将扩展名为 cer 的文件转换为 jks 文件 有人可以帮我解决这个问题吗 我用谷歌搜索但没有得到太多信息 即使是教程或链接也可以 我猜想使用的是Java Key Store 谢谢 我使用 BouncyCastle 库 最新版本 1 5
  • 将 SCSS 附加到 HTML 文档 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎偏离主题 因为它缺乏足够的信息来诊断问题 更详细地描述您的问题或包括一个最小的例子 http stackoverflow co
  • 焦点输入字段的边框半径

    我们如何调整输入字段焦点的边框半径 HTML
  • 如何使用QtCreator远程调试图形应用程序?

    我开发了一个跨平台的 Qt 应用程序 现在我需要 想要在远程主机上运行它并加载 GUI 表单 我知道有两种方法可以做到这一点 通过连接到 QtCreator 的控制台在远程显示器 可能是虚拟的 上打开应用程序ssh 使用远程 X 会话运行