2014-03-27 122 views
8

任何人都可以请我解释一下Linux中剥离的和未剥离的二进制文件之间的实际区别是什么?在Linux中剥离的二进制文件和非剥离的二进制文件之间的区别

经过一番搜索后,我发现非剥离的二进制文件包含调试信息和剥离的二进制文件。

+1

看起来好像你在Google搜索时得到了你的答案。你还需要知道什么? – Barmar

+0

@Barmar这是现在Google上的最佳答案。 – starbeamrainbowlabs

回答

5

虽然您已经从Google找到您的答案。只要说明一下,未剥离的二进制文件中就包含内置的调试信息。因此,如果您使用gcc's -g标志编译可执行文件,它将包含调试信息。尽管带区二进制文件通常会从exe文件中删除这些调试信息,而这些信息不是执行所必需的,从而减小了exe文件的大小。

+0

感谢您的回复。 那么,如何从使用gcc的-g标志编译的可执行文件中删除调试信息? – Droider

+1

@Droider: - strip是可以在已编译的目标文件上运行的东西。它还具有各种命令行选项,您可以使用它们来配置哪些信息将被删除。例如,-g仅剥离gcc -g添加的调试信息。 gcc -s:从可执行文件中删除所有符号表和重定位信息。 strip:丢弃来自目标文件的符号。 –

相关问题