相同的源但编译二进制不同
你好
我使用ccarm编译器在WinXP上为VxWorks开发C / C ++。我想在很久以前建立的已发布交付之上添加一个热修复程序。来源保留在Clear Case上,每个交货都贴上标签。因此,可以访问特定交付的源代码。
为了确保从原始发布的版本没有任何改变,我必须确保我可以再次构建相同的输出文件。
这是问题所在;我从CC服务器检索源并构建它们。然后我将输出文件与相应的发布输出进行比较(输出文件的类型为* .lad文件+文件格式为elf32-littlearm)。差别很大(不是一些时间戳)。另一方面,我也比较汇编列表,它们也不同。
你知道什么会导致这样的差异吗?
在我看来,可能导致这种差异的项目清单
- 释放的输出是在不同的PC(再次使用WinXP)上构建的,带有自动构建脚本。新的输出是在我的本地构建的,具有相同的编译器和设置。
- 从存储库中检索到错误的标签
有什么要补充的吗?
提前致谢
没有找到相关结果
已邀请:
2 个回复
席陋临拈
或
获取有关binarie文件的一些详细信息,包括符号列表。 通过比较两者,您可以找出差异的原因。 如果您以前从未使用过readelf或objdump,可以在线找到大量文章和文档。 但是如果你使用相同的标签,使用相同的工具链(和相同的选项),输出就没有理由不同。
淑灯