golang编译错误

更新于 阅读 8

golang 编译时报如下错误

> [source 8/8] RUN go build -o app: #19 1.617 # golang.org/x/sys/unix #19 1.617 vendor/golang.org/x/sys/unix/syscall.go:83:16: undefined: unsafe.Slice #19 1.617 vendor/golang.org/x/sys/unix/syscall_linux.go:2256:9: undefined: unsafe.Slice #19 1.617 vendor/golang.org/x/sys/unix/syscall_unix.go:118:7: undefined: unsafe.Slice #19 1.617 vendor/golang.org/x/sys/unix/sysvshm_unix.go:33:7: undefined: unsafe.Slice

执行以下命令

go mod edit -go='1.16' -replace='golang.org/x/sys'='golang.org/x/sys@v0.0.0-20220811171246-fbc7d0a398ab'

因为 unsafe.Slice 是go 1.17中的一部分,GCP函数目前支持Go 1.16,所以在go.mod中需要回滚golang.org/x/sys。 执行完毕后在go.mod中会添加以下代码:

replace golang.org/x/sys => golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab