当尝试在我的 Mac 上构建以下程序时,我收到构建错误:undefined: syscall.TCPInfo
即使该变量已明确记录 http://golang.org/pkg/syscall/#TCPInfo
package main
import "syscall"
func main() {
_ = syscall.TCPInfo{}
}
这是我的 go 工具版本。
$ go version
go version go1.3 darwin/amd64
我认为这可能是缺乏操作系统支持的问题,所以我在 http://play.golang.org 上试了一下, 但看起来许多记录在案的变量只是从 syscall
包中随机丢失:http://play.golang.org/p/w3Uk6NaZVy
我错过了什么吗?
最佳答案
系统调用中指定的变量依赖于操作系统。
你可以给文件添加一个后缀来指定它们应该为哪个操作系统构建:
// +build linux,386 darwin,!cgo
因此您可以为每个操作系统使用特定的系统调用
标志。
关于go - 系统调用变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361715/