为什么调试包不包含源?

为什么调试包不包含源?

我原本以为安装完软件包后,libgtk-3-0-dbgDDD 会在进入 gtk+ 时显示源代码,但我必须自己下载源包(来自这里)并将其移动到正确的 /build 目录 :(

答案1

-dbg 包不是自动的 - 包维护者需要定义包,并将适当的参数传递给包构建工具以确保包具有任何内容。

按照惯例(但实际政策并非如此),-dbg 包中填充了原本可以通过调用 GNU strip 删除的数据,即默认情况下删除的调试符号(同样,按照惯例,但实际政策并非如此)。或者在非 ELF 库的情况下,使用某些特定于语言的等效项(例如,.NET 库的 .mdb 文件)。

约定并不要求 -dbg 包包含源(因为我们已经有包含这些包并使其可用的机制,即 apt-get source pkgname)。

Ubuntu 具有自动创建“调试 debs”或 .ddeb 文件的机制,这些文件的功能与 -dbg 包相同,但由构建服务器自动创建(即,在 Ubuntu 服务器上编译的没有 -dbg 包的未修改包将自动获得 .ddeb) - 但是,同样,因为有一个机制可以使源可用,所以 .ddebs 不包含源,因为它们不需要。

相关内容