Visual C++ 2010:确定性构建?如何区分exe/dll文件?

5
可能重复:
在Windows下进行确定性构建
比较发布版本中的构建产品

Visual Studio 2010 C++构建是确定性的吗?也就是说,如果输入相同的源代码和相同的编译/链接设置,它是否总是会产生相同的二进制指令?

我知道可能会有各种日期戳和其他依赖于编译系统的字段被写入二进制EXE或DLL文件。所以我问题的第二部分是:当使用diff比较这些文件时,我如何忽略这些“可变”元素?

我正在尝试创建一个工具,该工具将比较来自不同构建迭代的二进制文件,并告诉我它们是否功能等效。


请查看以下三个与编程有关的问题链接: https://dev59.com/70XRa4cB1Zd3GeqPvN23 https://dev59.com/7XM_5IYBdhLWcg3w4njb https://dev59.com/J03Sa4cB1Zd3GeqPyMkt - rerun
从技术上讲,这不是一个完全相同的副本,因为原问题是关于VS2005的,而这个问题是关于VS2010的。理论上,答案可能不同。实际上,我认为它们不同,但我没有任何数据来支持这一点。 - Adrian McCarthy
1个回答

0

您可以使用dumpbin命令跳过时间戳等其他信息。请尝试

dumpbin /rawdata 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接