当升级到Go1.18后

编译Windows/Linux-amd64时都没有遇到问题,但当我利用make想一次性编译所有常用平台如Darwin时遇到报错

# golang.org/x/sys/unix
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/syscall_darwin.1_13.go:29:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.1_13.go:27:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.1_13.go:40:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:28:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:43:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:59:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:75:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:90:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:105:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:121:3: //go:linkname must refer to declared function or variable
../../../../pkg/mod/golang.org/x/sys@v0.0.0-20200615200032-f1bc736245b1/unix/zsyscall_darwin_amd64.go:121:3: too many errors
internal/godebug

经查阅是因为sys库版本过旧导致的

https://github.com/golang/go/issues/51706

可以通过执行如下指令更新该库解决

go get -u golang.org/x/sys

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注