我对包的创建还不熟悉,我正在尝试创建一个 .deb 包,但在所有库和可执行文件上都遇到了 'unstripped-binary-or-object' 错误。
我已经将所有东西设置在我希望它们最终出现的目录树中(包括一个包含控制文件的 DEBIAN 文件夹),然后执行:
fakeroot dpkg-deb --build ./mypackage
当我使用以下命令进行 lintian 检查时:
lintian mypackage.deb
我收到了那个错误。
有任何想法或建议吗?
谢谢
objcopy
或strip
来从正在构建的二进制文件中去除调试符号。然而,我建议您要么保留未剥离的二进制文件的副本,要么(在使用objcopy
的情况下)将调试符号拆分到一个单独的文件中,以便稍后可以与调试器一起使用。*-devel
软件包会附带相应*
软件包的符号。所以如果您将此发布给公众,您可能还想考虑创建其中之一。strip -S -o [stripped-file] [input-file]
对应于strip -S
的开关是objcopy -g
,或者简单地使用适用于两者的长格式(但并非在我使用strip
时适用于所有平台):--strip-debug
。
用于使用objcopy
拆分调试符号的描述性用法,请查看man objcopy
中的选项--only-keep-debug
。
objcopy --strip-debug
是不足以满足lintian的要求的。我还需要添加--strip-unneeded
参数:objcopy --strip-debug --strip-unneeded
。 - abergmeier