美文网首页
Go build构建的二进制不一致问题

Go build构建的二进制不一致问题

作者: 莫问君心 | 来源:发表于2020-01-15 10:18 被阅读0次

    二进制差异

    go build经常会出现两次对相同源码构建后,其二进制结果不一致问题

    Go程序的构建过程分为编译和链接两部分,编译过程中会因源码特征导致buildid不同,而链接过程中用于链接的临时目录名被写入ELF文件中会导致最后更新buildid时再次引入差异。

    解决办法:

    设置-buildid-tmpdir编译选项

    mkdir -p ./tmp
    go build -ldflags "-buildid=IdNetCheck -tmpdir=./tmp" -o./bin/xxx main.go
    

    说明:
    该方法只能解决部分情况下go build结果不一致问题,搞不定不要打我。

    相关文章

      网友评论

          本文标题:Go build构建的二进制不一致问题

          本文链接:https://www.haomeiwen.com/subject/ebzzactx.html