在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中)

2024-01-01

我在 Ubuntu 中使用 Qt Creator。它是从存储库安装的,但就像现在一样,调试时无法进入 Qt 源代码。

我怎样才能启用它?


由于Qt Creator使用gdb,因此需要配置gdb。首先要做的是安装 Qt 调试符号:

apt-get install libqt4-dbg

或者,对于 Qt5:

apt-get install qtbase5-dbg # For the qtbase package

这将安装 Qt 库的调试符号。旧版本的 Ubuntu 有一个愚蠢的错误,需要额外的技巧来纠正这些符号文件,但在当前版本中它工作正常。

这将使 gdb 进入 Qt 方法内部,但如果没有源代码就没有乐趣了。因此,我们需要可以像这样安装的源,假设在 APT 中启用了源存储库:

apt-get source qt4-x11
ln -s qt4-x11-4.7.0 qt # a convenience symlink

或者,对于 Qt5:

apt-get source qtbase-opensource-src
# Make a link as above, if you wish

这将下载源代码,将它们解压到当前目录并相应地修补它们,不需要 root 权限,除非当前目录不可被当前用户写入。

最后一件事是通知 gdb 源位置,这是通过将其放入~/.gdbinit file:

dir ~/vita/qt/src/corelib
dir ~/vita/qt/src/gui
dir ~/vita/qt/src/network
dir ~/vita/qt/src/sql

根据需要添加模块和正确的路径。方便的符号链接在这里非常有用,因此我们不必每次升级到新的 Qt 版本时都编辑此文件。我们只需要下载新的源代码,修补它们并更改符号链接。

请注意,即使我们已经安装了调试符号,我们仍然使用 Qt 库的发布版本。这意味着代码是高度优化的,并且在单步执行 Qt 二进制文件时有时会表现得很奇怪。如果出现问题,则需要在调试模式下构建 Qt,单独安装它(例如,在 /usr/local/qt4-debug 中)并告诉 Qt Creator 使用该特定安装。

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

在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中) 的相关文章

  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • jsPDF html 方法使用 addPage 在生成的 PDF 中分割页面

    我在用jsPDF s html为某些由多个段落组成的 html 生成 PDF 的方法p与每个p包含 50 500 个单词 PDF 是使用我定义的样式正确生成的 我面临的唯一问题是当内容p标签溢出到 PDF 中的新页面 剪切部分文本 如下所示
  • 如何使用sendinput函数C++

    尽管我从msdn看到了sendinput函数 但我不知道输入了什么参数 UINT WINAPI SendInput In UINT nInputs In LPINPUT pInputs In int cbSize 上面的参数是什么意思以及我
  • 使用 T-SQL 生成随机字符串

    如果您想使用 T SQL 生成伪随机字母数字字符串 您会怎么做 如何从其中排除美元符号 破折号和斜杠等字符 使用指南 SELECT randomString CONVERT varchar 255 NEWID 很短
  • 在 RSpec 测试中“let”真正节省了多少时间?

    我发现在代码中设置变量比使用变量容易得多let let很挑剔 总是告诉我错误使用的方式 当我在规范中使用简单的变量声明时 例如 tx good makeTransaction1 一切正常 但是当我使用let像这样 let tx good m
  • Django,级联移动到单独的表而不是级联删除

    我想在我们使用时保留数据delete 代替soft delete 使用 is deleted 字段 我想将数据移动到另一个表 对于已删除的行 https stackoverflow com a 26125927 433570 https s
  • 结果文档中生成空/空白命名空间声明

    我编写了一个用于将 XML 转换为 ePub 的包 一切正常 除了某些情况下 空白命名空间 xmlns 节点被写入结果文档 在转换之前 我准备了临时变量来保存主要段 即 meta body等 最后复制节点 使用xsl copy of cop
  • 为什么我们需要杰克逊数据绑定?

    我是 Spring MVC 的新手 我的问题是 为什么我们需要 jackson databind 因为我们可以收到Request Params by ModelAttribute并通过 http PUT 或 POST 请求 RequestB
  • 在 React 中更新 d3 元素?

    我正在尝试根据输入栏中的搜索输入更新此气泡图 现在 我将所有 d3 代码放入 Bubble js 中 然后在 app js 中 我有一个 searchinput 元素 它将过滤要显示的数据 然后在 Bubble 的状态中 我将其数据设置为等
  • UIPageViewController委托方法类似于scrollViewDidScroll:(UIScrollview*)scrollview

    我正在使用 UIPageViewController 来滑动一系列视图控制器 我希望父视图控制器的背景在滑动时根据视图之间滚动的位置在颜色之间平滑过渡 我希望 UIPageViewController 会有一个类似于带有位置的 scroll
  • 看起来像链接的按钮

    您好 我有一个要求 不允许我在页面上使用 javascript 我有一些asp LinkButtons但这些似乎使用了 javascript 所以我用按钮替换了它们
  • PHP 连接:关闭

    我有一个 PHP 应用程序 但遇到了一些问题 某些页面需要很长时间才能加载 几个小时后我发现了问题 但我不知道如何解决它 问题似乎出在标题上Connection keep alive 我使用了一个名为 Tamper Data 的 Firef
  • 如何在android中闪烁通知图标? [完毕]

    我搜索了很多东西 例如 如何在谷歌地图上显示闪烁的图标 https stackoverflow com questions 6729255 how to show icon blinking on google map 但根据这个我不知道如
  • Prolog 中 \+ 是什么意思?

    我在这里看到了一些使用它的答案 但我不知道它是什么意思或如何使用它 我也很难通过搜索引擎找到它 这是 无法证明 http en wikipedia org wiki Prolog Negation 操作员 如果其论证不可证明 则它成功 如果
  • 即使关闭 SSH 终端后,如何保持 Websocket 服务器运行?

    因此 我将 Ratchet 与 PHP 结合使用 并且目前已将一个成功的 websocket 示例上传到我的服务器 它在我进入 SSH 后起作用 然后只需手动运行 php bin chat server php 我想知道的是 在商业情况下
  • 更改 VSCode 用户设置位置

    我想将我的用户设置文件置于版本控制之下 最好是一个单独的文件夹 但我找不到告诉 VSCode 我的设置文件所在位置的选项 有没有办法更改 Visual Studio Code 查找的位置settings json file Update 由
  • 在多台 Mac 上开发 iPhone 应用程序

    这可能非常愚蠢 但我可以使用多台具有不同开发配置文件的 Mac 来制作应用程序吗 如果我带着我朋友的 Macbook 去旅行 而他也是一名开发人员并拥有自己的开发配置文件 我可以使用我自己的开发人员配置文件来处理我的应用程序而不干扰他的应用
  • 在 JavaScript 中初始化对象的空属性的正确方法是什么

    我有一个具有属性的对象 其中 1 个属性prop2只会在稍后初始化并在准备好时添加到该对象 我想将其显示为对象的属性 纯粹是为了人类可读性 这样当我稍后查看代码时 我就会知道它存在并且将 可以使用 所以我的问题是什么 是什么正确的方法初始化
  • 如何查看/更新数据库版本?有类似“fallbackToDestructiveMigration”之类的东西吗?

    修改后sq通过重命名其中一个表并添加另一个表来更改我的文件 我没有找到任何地方来指定数据库架构或版本已更改 并且我不想迁移 只需重新创建数据库 有关的文档官方网站 https cashapp github io sqldelight mul
  • 阻止访问 php.ini 文件

    我们在 Web 树的根目录中有一个自定义的 php ini 和 htaccess 文件 默认情况下 htaccess无法访问 但php ini可以访问 例如 http example com php ini 阻止访问 php ini 文件的
  • 在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中)

    我在 Ubuntu 中使用 Qt Creator 它是从存储库安装的 但就像现在一样 调试时无法进入 Qt 源代码 我怎样才能启用它 由于Qt Creator使用gdb 因此需要配置gdb 首先要做的是安装 Qt 调试符号 apt get