Mac 上的 Go 1.18 构建错误:“unix/syscall_darwin.1_13.go:25:3: //go:linkname 必须引用声明的函数或变量”

Wal*_*Sun 127 macos go

我在 Mac 12+ 上升级到 Go 1.18。

“go build”失败并出现如下错误:

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

Compilation finished with exit code 2
Run Code Online (Sandbox Code Playgroud)

Bri*_*its 347

这是由旧版本引起的golang.org/x/sys本期提到)。修复方法是更新:

go get -u golang.org/x/sys
Run Code Online (Sandbox Code Playgroud)

  • 我确实运行了 `go get -u golang.org/x/sys` 但仍然,我的构建失败并出现上述错误:/go/pkg/mod/golang.org/x/sys@v0.0.0-20201112073958-5cba982894dd /unix/syscall_darwin.1_13.go:29:3: //go:linkname 必须引用声明的函数或变量 (8认同)

小智 7

正如文档提到的,

  1. 最简单的方法:跑步get -u golang.org/x/sys
  2. 手动: git 将存储库克隆到$GOPATH/src/golang.org/x/sys.