从 1.5 到 1.6:不允许导入循环

我正在尝试从 Go 1.5.3 迁移到 Go 1.6 并且对于某些包,当我尝试为 1.6 构建它们时遇到“不允许导入循环”错误。


例如,为了构建我得到的 golint 工具:


import cycle not allowed

package github.com/golang/lint/golint

    imports flag

    imports errors

    imports runtime

    imports runtime/internal/atomic

    imports runtime

我的本地环境中是否有任何问题,或者有什么方法可以解决这个问题?


go env

GOARCH="amd64"

GOBIN=""

GOEXE=""

GOHOSTARCH="amd64"

GOHOSTOS="linux"

GOOS="linux"

GOPATH="/home/radek/Projekty/Go"

GORACE=""

GOROOT="/home/radek/Software/Go/go1.6"

GOTOOLDIR="/home/radek/Software/Go/go1.6/pkg/tool/linux_amd64"

GO15VENDOREXPERIMENT=""

CC="gcc"

GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"

CXX="g++"

CGO_ENABLED="1"


慕的地6264312
浏览 160回答 3
3回答

MMMHUHU

前几天我遇到了这种情况。这与我的环境变量设置错误有关。做go version并检查您是否正在使用预期的 go 发行版进行构建。如果它不是您期望的版本,请确保将您的$GOROOT和或$GOPATH变量更新为正确的设置。https://golang.org/doc/install

收到一只叮咚

这个错误是当有一个包导入时显示的错误。例如,在 中$GOPATH/src/github.com/myawesome/mistakes,您有一个像这样的文件:package mistakesimport (    "github.com/myawesome/mistakes")func CreateComplicatedBugFromSimpleMistake(m mistakes.Mistake) {    // done.}那就是我正在做的。如果您的情况也是如此,您应该知道如何解决它。

慕婉清6462132

比较readlink -f $(which go)and的输出,echo $GOROOT如果它们不同,您应该将 $GOROOT 设置为指向您正在运行的 go 二进制文件的根目录,反之亦然。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go