Go没有检测到`sync`包

时间:2014-08-12 19:27:31

标签: go

我收到error: reference to undefined identifier ‘sync.Pool’消息,这在Playground中有效。我该怎么办?

package main

import (
  "fmt"
  "sync"
)

func main() {
  var wg sync.Pool
  fmt.Println(wg)
}

2 个答案:

答案 0 :(得分:5)

您没有安装正确版本的Go。仅在Go 1.3中添加了sync.Pool。尝试更新本地go包,确认您运行的是1.3,然后重试。

答案 1 :(得分:1)

如果您installed go from source,请查看$GOROOT et ^ $GOROOT_FINAL所指的内容:如果它们不同,则需要将GOROOT重置为GOROOT_FINAL。< / p>

  

未明确设置$GOROOT时安装的二进制文件和脚本所假定的值   它默认为$GOROOT的值。

     

如果您想在一个位置构建Go树,但在构建后将其移动到其他位置,请将$GOROOT_FINAL设置为最终位置。


从评论中,OP提到:

  

go version打印出来

go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64 

$GOROOT/pkg/linux_amd64/sync.a确实存在。

我建议确保$PATH包含$GOROOT/bin JimB补充道:

  

更具体一点,请确保您的$PATH包含$GOROOT/bin正确的GOROOT。我认为你有两个安装使这更令人困惑。