为什么构建同一个项目会为每个开发人员生成不同的EXE文件

Lio*_*gan 12 c++ windows linker visual-c++ binary-reproducibility

我和我的团队正在开发一个VC++ 6项目.我们都使用相同的代码库(使用版本控制系统),据我们所知,所有编译器/链接器/环境设置(包括包含目录顺序)完全相同.当然,我们使用相同的VC++版本和相同的服务包(VC6 SP6).

问题是我们每个人构建的EXE有点不同.

我知道每次在同一台计算机上构建EXE时,文件中有3个位置,链接器存储时间戳.我不是在谈论这些差异.

虽然我们的EXE文件长度完全相同,但是当我们比较EXE时,有1000个不同的字节.其中许多字节的值相差0x20.

任何想法可能是什么原因?

编辑:调试版本(实际上,我们没有检查发布).

编辑:差异在二进制部分,而不是文本字符串.

编辑:所有开发人员使用相同的驱动器/文件夹名称,源和产品.

Nic*_*kis 5

如果Debug版本选中"逐步增加链接"选项,则可能是差异的原因.

  • 这只是猜测.每次构建项目时,增量链接都会添加一些调试信息.它不会创建*clean*exe. (2认同)