我收到error: reference to undefined identifier ‘sync.Pool’
消息,这在Playground中有效。我该怎么办?
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.Pool
fmt.Println(wg)
}
答案 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
。我认为你有两个安装使这更令人困惑。