当我在文本编辑器中打开一个 unix 可执行文件时,很明显来自编译器的机器代码已被压缩。如果我对我所说的任何内容有误,请纠正我,但由于它是压缩的,编译器(我使用 LLVM)使用什么压缩算法(zip、gzip 等)?
问问题
138 次
2 回答
2
当我将一个 unix可执行文件弹出到文本编辑器中时 [...]
这取决于您的 UNIX 风格,但现在 UNIX 可执行文件通常采用ELF 格式,未压缩。当然,您可以手动压缩它们,但是如果不先解压缩它们,则无法链接或加载它们。无论如何,GCC 和 Clang 都不会自动压缩它们的输出二进制文件。
另外,我不太清楚为什么您试图在文本编辑器中打开可执行文件 - 如果您想查看二进制文件,您应该寻找二进制文件的适当查看器,例如十六进制编辑器;如果您想在其中查看更易读的代码版本,则应该使用disassembler。
于 2013-09-13T17:28:23.197 回答
-2
是bzip2
。它是在 llvm-ld v. 1.4 中实现的:
已实现使用 bzip2 的字节码压缩。LLVM 生成的所有字节码文件现在将默认压缩。可以使用可生成字节码文件的工具的 -disable-compression 选项禁用压缩。
于 2013-09-12T20:51:21.950 回答