📜  linux strip 可执行文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:21.144000             🧑  作者: Mango

Linux Strip 可执行文件 - Shell-Bash

当我们编译完一个程序之后,通常会生成一个可执行文件。通常情况下,可执行文件包含了很多信息,包括符号表、调试信息等等。这些信息会占用很大的空间,因此对于生产环境中的应用程序而言,这些信息是无用的。我们可以使用 strip 命令来去除这些无用信息,从而减小可执行文件的体积,提高应用程序的运行效率。

使用方法

strip 命令非常简单,使用方法如下:

strip [选项] 可执行文件

其中,选项有:

  • -s:去除所有符号表,包括全局符号表、局部符号表和调试符号表。
  • -g:去除调试符号表。这个选项可以将符号表保留下来,但是去除调试符号表。这样可以保留一部分调试信息,方便后续的调试工作。
  • -S:去除所有符号表,并且保留调试信息。
  • -d:去除除了动态符号表之外的所有符号表。这种情况下,动态链接器仍然可以使用动态符号表来解析库函数和全局变量。这是一种比较灵活的选项。
例子

假如我们有一个 C 语言程序的源代码,并使用以下命令编译:

gcc -o hello hello.c

这个命令将生成一个名为 hello 的可执行文件。接下来我们可以使用 strip 命令来缩减该可执行文件的大小:

strip hello

这个命令将去除所有符号表,从而缩减可执行文件的大小。

总结

在生产环境中,去除可执行文件中的无用信息可以缩减文件大小,提高应用程序的运行效率。 strip 命令是一个非常强大的工具,可以通过简单的命令来去除可执行文件中的符号表和调试信息。