任何人都可以请我解释一下Linux中剥离的和未剥离的二进制文件之间的实际区别是什么?在Linux中剥离的二进制文件和非剥离的二进制文件之间的区别
经过一番搜索后,我发现非剥离的二进制文件包含调试信息和剥离的二进制文件。
任何人都可以请我解释一下Linux中剥离的和未剥离的二进制文件之间的实际区别是什么?在Linux中剥离的二进制文件和非剥离的二进制文件之间的区别
经过一番搜索后,我发现非剥离的二进制文件包含调试信息和剥离的二进制文件。
虽然您已经从Google找到您的答案。只要说明一下,未剥离的二进制文件中就包含内置的调试信息。因此,如果您使用gcc's -g
标志编译可执行文件,它将包含调试信息。尽管带区二进制文件通常会从exe文件中删除这些调试信息,而这些信息不是执行所必需的,从而减小了exe文件的大小。
感谢您的回复。 那么,如何从使用gcc的-g标志编译的可执行文件中删除调试信息? – Droider
@Droider: - strip是可以在已编译的目标文件上运行的东西。它还具有各种命令行选项,您可以使用它们来配置哪些信息将被删除。例如,-g仅剥离gcc -g添加的调试信息。 gcc -s:从可执行文件中删除所有符号表和重定位信息。 strip:丢弃来自目标文件的符号。 –
看起来好像你在Google搜索时得到了你的答案。你还需要知道什么? – Barmar
@Barmar这是现在Google上的最佳答案。 – starbeamrainbowlabs