【问题标题】:Go: error on import in hello worldGo:在 hello world 中导入错误
【发布时间】:2013-02-13 08:36:48
【问题描述】:

我的测试程序test.go

package main

import "fmt"
func main() {
  fmt.Printf("Hello\n")
}

运行此go run test.go 会出现错误:

# io
pack: cannot open $WORK/io/_obj/_go_.6
# strconv
pack: cannot open $WORK/strconv/_obj/_go_.6

环境:

go version devel +715674f61ae8 Tue Jan 29 13:34:18 2013 -0800 linux/amd64

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/usr/local/google/home/igord/incub/web"
GOROOT="/opt/go"
GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
CGO_ENABLED="1"

但我从 go 网站上的(精选)RELEASE 1.0.3 下载了这个版本!

【问题讨论】:

  • go env 的输出是什么?
  • 您是否将Go安装到了不寻常的位置?你的 $GOROOT 和 $GOPATH 是什么?见golang.org/doc/install#install
  • go env 的输出是什么? go run -work test.go 的输出是什么?
  • 对于go run -work test.goWORK=/tmp/go-build437772438,其余的都是一样的。
  • @RichChurcher 你是对的。我把转到/opt。在我将其移至/usr/local/ 后,一切正常。但请注意我让GOROOT 指向安装路径。

标签: go


【解决方案1】:

已由 cmets 中的各种解决,但记录在案:将 Go 的二进制分发安装到默认位置以外的位置需要正确设置 $GOROOT$GOPATH

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多