未剥离的二进制或对象创建Debian软件包

我对包的创建还不熟悉,我正在尝试创建一个 .deb 包,但在所有库和可执行文件上都遇到了 'unstripped-binary-or-object' 错误。

我已经将所有东西设置在我希望它们最终出现的目录树中(包括一个包含控制文件的 DEBIAN 文件夹),然后执行:

fakeroot dpkg-deb --build ./mypackage

当我使用以下命令进行 lintian 检查时:

lintian mypackage.deb

我收到了那个错误。

有任何想法或建议吗?

谢谢

1个回答

使用objcopystrip来从正在构建的二进制文件中去除调试符号。然而,我建议您要么保留未剥离的二进制文件的副本,要么(在使用objcopy的情况下)将调试符号拆分到一个单独的文件中,以便稍后可以与调试器一起使用。
顺便说一下,通常*-devel软件包会附带相应*软件包的符号。所以如果您将此发布给公众,您可能还想考虑创建其中之一。
对于strip命令,常见用法是仅剥离调试符号:
strip -S -o [stripped-file] [input-file]

对应于strip -S的开关是objcopy -g,或者简单地使用适用于两者的长格式(但并非在我使用strip时适用于所有平台):--strip-debug

用于使用objcopy拆分调试符号的描述性用法,请查看man objcopy中的选项--only-keep-debug


1对我来说,仅仅调用objcopy --strip-debug是不足以满足lintian的要求的。我还需要添加--strip-unneeded参数:objcopy --strip-debug --strip-unneeded - abergmeier