系统调用变量未定义

eri*_*ang 6 system-calls go

当我尝试在我的Mac上构建以下程序时,我遇到了一个构建错误:undefined: syscall.TCPInfo尽管该变量已明确记录http://golang.org/pkg/syscall/#TCPInfo

package main

import "syscall"

func main() {
    _ = syscall.TCPInfo{}
}
Run Code Online (Sandbox Code Playgroud)

这是我的go工具版本.

$ go version
go version go1.3 darwin/amd64
Run Code Online (Sandbox Code Playgroud)

我认为这可能是一个缺乏操作系统支持的问题,所以我在http://play.golang.org上尝试过,但看起来很多记录的变量只是在syscall包中随机丢失:http://play.golang.组织/ p/w3Uk6NaZVy

我错过了什么吗?

fab*_*ioM 8

syscall中指定的变量取决于操作系统.

您可以在文件中添加后缀,以指定应为其构建的操作系统:

// +build linux,386 darwin,!cgo
Run Code Online (Sandbox Code Playgroud)

因此,您可以syscall为每个操作系统使用特定标志.