gpt4 book ai didi

go - 为什么每次重建时我的 go 二进制文件都会改变?

转载 作者:IT王子 更新时间:2023-10-29 01:42:09 25 4
gpt4 key购买 nike

为什么在某些项目上重新运行 go build ./ 每次都会产生不同的结果?

例如:

$ cd go/src/github.com/google/cadvisor
$ go build ./
$ sh1sum cadvisor
cdfc3c38898e2decd5df35b661737f7cc4f514ed cadvisor
$ go build ./
$ sha1sum cadvisor
a94db96d684225e7a45cc68c5341fe6f57897c23 cadvisor

完全隔离设置:

$ go version
go version go1.6.2 linux/amd64
$ export GOPATH=$(mktemp -d)
$ cd $GOPATH
$ go get github.com/tools/godep
$ go get github.com/google/cadvisor
package github.com/influxdb/influxdb/client: code in directory /tmp/tmp.2MxFdNmdDe/src/github.com/influxdb/influxdb/client expects import "github.com/influxdata/influxdb/client"
$ cd src/github.com/google/cadvisor
$ $GOPATH/bin/godep restore
godep: WARNING: Go version (go1.6) & $GO15VENDOREXPERIMENT= wants to enable the vendor experiment, but disabling because a Godep workspace (Godeps/_workspace) exists
$ go build ./
...

最佳答案

这是因为您使用的是 CGO,Go 创建了一个用于编译 C 代码的 tmp 目录,该路径嵌入到二进制文件中。

有一个关于它的问题,但我现在找不到它。

问题 920613247 .

关于go - 为什么每次重建时我的 go 二进制文件都会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com