目标:了解在两个相同环境中构建的相同二进制文件的二进制大小差异的原因
背景:我们在不同的位置创建了一个新的重复构建环境。然而,当比较这两个环境的二进制大小时,超过 60% 的二进制文件在两个环境中的大小不同。
采取/需要采取的措施:为了了解不同大小的原因,我们尝试使用 readelf、objdump、cmp、vbindiff、Beyond Compare 等工具。使用这些工具我们能够突出显示差异,但不确定是什么是它的含义以及如何采取措施解决尺寸问题。
例如:
环境 1 中的二进制 1 显示:入口点地址:0x10cc8
环境 2 中的二进制 1 显示:入口点地址:0x10d10
不确定这两个二进制文件的上述差异是什么意思。
相似地
环境 1 中的二进制 1 显示:节头的开头:215080(文件中的字节)
环境 2 中的二进制 1 显示:节头的开头:215172(文件中的字节)
同样,这两个二进制文件之间存在各种差异。
您能否建议了解突出显示的差异的方法,以便采取措施了解二进制文件大小差异的原因。
PS:我已经阅读了以下帖子,并且对遵循 gcc 编译的二进制文件的一些步骤非常有帮助吗?
提前致谢