猿问

Go build 找不到包

问题

通过查看相关问题,我无法找到解决方案。我不知道是什么让我的 Go 环境与规范设置不同。


go env 返回


GOROOT="/usr/lib/go"

GOBIN=""

GOARCH="386"

GOCHAR="8"

GOOS="linux"

GOEXE=""

GOHOSTARCH="386"

GOHOSTOS="linux"

GOTOOLDIR="/usr/lib/go/pkg/tool/linux_386"

GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread"

CGO_ENABLED="1"

tree $GOPATH 返回


/home/USER/go

├── bin

├── pkg

│   └── linux_386

│       └── bitbucket.org

│           └── USER-NAME

│               └── PROJECT

│                   └── my_package.a

└── src

    └── bitbucket.org

        └── USER-NAME

            └── PROJECT

                ├── main

                │   ├── main.go

                └── my_package

                    └── my_package.go

(全部大写是替换)


main.go 包含


package main


import (

        "bitbucket.org/USER-NAME/PROJECT/my_package"

)


func main() {

        my_package.Foo()

}

go build在main目录中调用返回import "my_package": cannot find package


沃尔克指出,也go env应该返回一个GOPATH条目。env 命令的来源证实了这一点。但是,echo $GOPATH在 bash 或os.Getenv("GOPATH")Go 中运行都返回\home\USER\go. 我不确定为什么go env.


解决方案

当我遇到这个问题时,我正在运行 Go 1.0。当我升级到 Go 1.2.1 时,问题消失了。


互换的青春
浏览 257回答 2
2回答

慕桂英4014372

您没有设置(或导出)GOPATH。GOPATH 比 GOROOT 重要得多(至少在新的 Go 版本中)。
随时随地看视频慕课网APP

相关分类

Go
我要回答