Bil*_*pey 11 c++ linux gcc elf
如果在w/gcc的不同时间构建相同的代码,则生成的二进制文件将具有不同的内容.好吧,我对此并不狂热,但事实就是如此.
但是,我最近遇到的情况是,使用相同版本的gcc构建的相同代码生成的二进制文件大小与先前版本不同(大约1900字节).
有谁知道可能导致这些情况的原因是什么?这是某种ELF问题吗?是否有任何工具(除了ldd)可用于转储二进制文件的内容以查看究竟有什么不同?
提前致谢.
Bil*_*pey 9
我已经设法解决了问题,至少让我感到满意,并希望传递我发现的东西.
使用readelf,(readelf -a -W)我创建了一个报告,列出了两个版本的内容并对它们进行了比较(使用Beyond Compare).这表明一些额外的符号从升级库中被拉入.
瞧,我们实际上正在构建一个不同版本的依赖库,并没有意识到它.在这种情况下没有伤害,但知道你的可执行文件中有什么是好的.
感谢所有人的周到回复.
caf*_*caf 8
objdump 可能是您要寻找的程序转储二进制文件的内容.
objdump
objdump -h 将显示部分及其大小,因此您应该能够看到尺寸变化发生的位置,然后进一步深入了解原因.
objdump -h
Dir*_*tel 3
一个可复制的例子会有所帮助:
归档时间:
16 年,8 月 前
查看次数:
5291 次
最近记录:
15 年,11 月 前