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

标签 c++ windows visual-c++ linker binary-reproducibility

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

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

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

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

知道可能是什么原因吗?

编辑:调试构建(实际上,我们没有检查版本)。

编辑:区别在于二进制部分,而不是文本字符串。

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

最佳答案

如果 Debug 版本选中了“增量链接”选项,那么这可能是造成差异的原因。

关于c++ - 为什么构建同一个项目会为每个开发人员生成不同的 EXE 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070216/

相关文章:

c - fopen 在尝试打开 bmp 文件(C++)时返回 NULL?

c++ - 用于纹理上传的OpenGL PBO,无法理解一件事

c++ - 如何编写支持 LTO 的代码?

c++ - NS_ERROR_XPC_GS_RETURNED_FAILURE 错误码

css - Visual Studio 不呈现@font-face,可能是相对路径问题?

c++ - 如何让 GitLab Windows 共享运行器构建速度更快?

windows - 批量文件重命名(删除时间戳)

C++ Sizeof 给出不可预测的结果

c++ - 访问 vector <Point2f> 中的数组值以及单独的 x 和 y 坐标

c++ - 应用程序无法使用 libcurl C++ Windows 7 VS 2010 启动 (0xc0150002)