在Ubuntu Linux中使用Qt Creator进入Qt源代码

24

我在Ubuntu中使用Qt Creator。它是从存储库安装的,但现在在调试时没有办法进入Qt源代码。

我该如何启用此功能?

3个回答

45

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

apt-get install libqt4-dbg

或者,对于Qt5:

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

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

这将使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 文件中添加以下内容来完成:

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使用该特定安装。


1
谢谢你的回答。顺便说一下,你可以使用“apt-get source libqt4-core libqt4-gui”命令,它会自动下载并打补丁。 - sashoalm
@satuon,我忘了它,因为出于某种原因我禁用了源代码库。我会修复的。 - Sergei Tachenov
1
也许值得一提的是,源代码仓库应该被启用,因为如果没有启用,我会收到一个“无法找到qt4-x11源包”的错误提示,而一些新用户可能不知道这个错误的原因... - Lawand
我在安装了Ubuntu SDK的Ubuntu 13.04上做了类似的事情,但是使用了qtbase-opensource-src软件包。感谢@Sergey Tachenov指引我方向! - Mats Adborn
еңЁUbuntu 13.10дёӯпјҢдҪҝз”Ёзі»з»ҹQt5жүҖйңҖзҡ„иҪҜ件еҢ…жҳҜqtbase5-dbgе’Ңqtbase-opensource-srcгҖӮ - Pavel Strakhov

0

Linux下的Qt二进制包不包含调试符号,因此调试器不知道要跳转到哪个文件或行号。如果您想要能够调试Qt代码,您需要使用-debug配置选项自己构建Qt。

Sergey Tachenov的说明只适用于您构建应用程序时使用Ubuntu存储库中可以找到的Qt版本。


0
我在Ubuntu上让它工作的唯一方法是使用从源代码构建Qt并使用configure -debug。之后一切都像魔法般地开始正常工作了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接