delphi - 为什么每次构建都会更改 exe 文件?

标签 delphi linker binary-reproducibility

构建相同的项目(没有任何更改)会生成二进制不同 exe 文件:它们的一些小区域是不同的。空项目、版本信息(以及每次构建时的自动递增)已关闭。

为什么会这样?是否有可能让 delphi 为相同的项目生成二进制相等的文件?

最佳答案

Windows 使用的 PE 可执行文件格式中的各种结构包括由编译器和链接器设置的时间戳。

可以对文件进行后处理以将这些值重置为定义的常量(我编写了一个工具来为需要精确哈希值的安全产品执行此操作),但这只能在准备就绪时完成-ship 可执行文件,因为一些调试器依赖时间戳进行源查找等。

关于delphi - 为什么每次构建都会更改 exe 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323560/

相关文章:

vb6 - 如何验证VB 6可执行文件的2个副本来自同一代码库?

c# - 如何通过可重现的操作从 4 个字节生成 8 个字节?

c++ - Visual C++ 中的二进制再现性

delphi - 记录中的字符串生命周期管理

c - 添加函数调用如何在链接时导致其他符号变得未定义?

delphi - TDictionary 转换在引用的包中失败

c - 如何链接Scintilla?

gcc - x86-64 汇编语言中的 ELF 共享对象

delphi - 关闭 CnPack Ctrl + U 功能

XMLDocument 节点没有值