我正在尝试使用以下命令安装 Qt 核心库的调试符号,该命令在 16.10 中运行良好:
sudo apt-get install qtbase5-dbg
然而,这在 Zesty 中不起作用:
$ sudo apt-get install qtbase5-dbg
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package qtbase5-dbg is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'qtbase5-dbg' has no installation candidate
经过仔细检查,我发现其他 Qt 软件包均不再有其附带的*-dbg
软件包可用。
这些包发生了什么?我如何获取调试符号?
答案1
我将这个问题提交到了ubuntu-devel-discuss
邮件列表,Mattia Rizzolo 回复道以下回复:
Debian 正在慢慢放弃手动调试符号包 (-dbg),转而使用自动调试符号包 (-dbgsym)。
https://lists.debian.org/debian-devel/2015/12/msg00262.html
Ubuntu 一直以来都有自动调试包(.ddebs),并且如果存在手动 -dbg 包,它会过渡地将其拉入: https://wiki.ubuntu.com/Debug%20Symbol%20Packages
我知道现在做了一些工作来让 Ubuntu 构建调试包,就像 Debian 一样,我猜这项工作会(非常)缓慢地使它们融合。
这有点令人沮丧,因为这不仅没有在任何明显的地方说明,而且https://packages.ubuntu.com不显示文件并造成包不存在.ddeb
的错误印象。-dbgsym
现在来谈谈解决方案。
ddebs.list
创建一个名为的文件,/etc/apt/sources.list.d
内容如下:
deb http://ddebs.ubuntu.com zesty main restricted universe multiverse
deb http://ddebs.ubuntu.com zesty-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com zesty-proposed main restricted universe multiverse
* 您可能需要 root 权限才能创建该文件
然后您需要运行apt-get update
来刷新软件包列表。为 Qt 核心库提供调试符号的软件包名为libqt5core5a-dbgsym
,可以使用以下命令安装:
sudo apt-get install libqt5core5a-dbgsym