当我在 Mac 上使用 Go 构建某些东西时,二进制文件对于重复构建具有一致的 md5sum。但是,当我为 Windows 交叉编译或在 Windows 上本地构建时,我每次都会得到不同的校验和。发生了什么导致这种情况?[kbrandt@glade: ~/] GOOS=windows go build[kbrandt@glade: ~/] md5 -r tcollector.exef66dbec001eb0e02da261b4bc70d8072 tcollector.exe[kbrandt@glade: ~/] GOOS=windows go build[kbrandt@glade: ~/] md5 -r tcollector.exe630e89fa4907b6811a3d19c99dbac2dc tcollector.exe[kbrandt@glade: ~/] go build [kbrandt@glade: ~/] md5 -r tcollector 0353160b4b000c7ba9d5331a72265291 tcollector[kbrandt@glade: ~/] go build [kbrandt@glade: ~/] md5 -r tcollector0353160b4b000c7ba9d5331a72265291 tcollector
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
Windows 输出中的某些内容取决于随机性或时间。
我不知道更多(比如它在使用什么改变)但没关系
编译器(即使是同一编译器的不同版本)生成的输出会有所不同,并且散列的设计使相似的事物不会产生相似的输出。
校验和就是这样,您可以使用它来检查您是否拥有文件并且它是正确的。
有点空答案,但您所看到的情况没有技术问题。
- 2 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消