Unix 可执行文件上的压缩算法



当我在文本编辑器中打开一个 unix 可执行文件时,很明显编译器中的机器代码已被压缩。如果我说的任何事情都错了,请纠正我,但由于它是压缩的,什么压缩算法(zip,gzip等)编译器(我用的是LLVM)吗?

当我在文本编辑器中打开 unix 可执行文件时 [...]

这取决于你的UNIX风格,但现在UNIX可执行文件通常是ELF格式,这是未压缩的。当然,您可以手动压缩它们,但是如果不先解压缩它们,就无法链接或加载它们。在任何情况下,GCC 和 Clang 都不会自动压缩其输出二进制文件。

另外,我不太清楚为什么你试图在文本编辑器中打开可执行文件 - 如果你想看看二进制文件,你应该为二进制文件寻找一个合适的查看器,比如十六进制编辑器;如果你想看到一个更易读的代码版本, 您应该使用反汇编器。

这是

bzip2 .它是在llvm-ld v. 1.4中实现的:

已实现使用 bzip2 的字节码压缩。LLVM 生成的所有字节码文件现在都将默认压缩。可以使用可生成字节码文件的工具的 -disable-compression 选项禁用压缩。

http://llvm.org/releases/1.4/docs/ReleaseNotes.html

最新更新