golanggoビルドレポートエラーのインポートサイクルは許可されていません



Golang Go Build Report Error Import Cycle Not Allowed



長い間私を悩ませてきたgoコンパイルエラー:循環インポート、コードは間違いなく問題ありません、私はそれがインターネット上でgoを再インストールするための良い方法ではないことを発見しました。

import cycle not allowed package day01/hello imports fmt imports errors imports runtime imports internal/bytealg imports internal/cpu imports runtime

周囲:



ubuntu16.04

go1.11.4



編集者:vsコード

分析:

最初の問題はGOROOTとGOPATHです。 goインストールディレクトリについて明確にする必要があります。つまり、GOROOTは間違いを犯さないでください。インストールディレクトリがわからない場合は、次のコマンドを使用して、goインストールアドレスを表示できます。



$ whereis go #Output go: /usr/bin/go /usr/lib/go /usr/local/go /usr/share/go /usr/local/go/bin/go /usr/share/man/man1/go.1.gz #I may have installed multiple versions of go in different places

GOPATHはgoコードの作業パスです。プロジェクトフォルダーのパスは通常どおり構成できます。私のものは/ home / zzy / goProjectにあります。

環境ビューに移動

$ go env #Output GOARCH='amd64' GOBIN='/usr/local/go/bin' GOEXE='' GOHOSTARCH='amd64' GOHOSTOS='linux' GOOS='linux' GOPATH='/home/zzy/goProject' GORACE='' GOROOT='/usr/local/go' GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64' GO15VENDOREXPERIMENT='1' CC='gcc' GOGCCFLAGS='-fPIC -m64 -pthread -fmessage-length=0' CXX='g++' CGO_ENABLED='1' #The key is GOPATH, GOROOT

私の設定は間違っていないことがわかりました!私のgoコードの作業ディレクトリはパス/ home / zzy / goProjecでもあり、GOPATHが間違っていないことを示しているので、何が問題なのですか。

最後に、whereis goを実行すると、goのバージョンが多数あり、環境変数でGOROOTの1つのバージョン(go1.11.4)のみを構成していることがわかりました。

しかし、goバージョンを確認していたところ、実際にはgo1.6が表示されていました。

go version

だから、goのインストールがめちゃくちゃで、バージョンが多すぎて、goのビルド中に正しいgoパスを見つけることができなかったと思い、1つずつ削除し始めました

sudo rm -r /usr/bin/go /usr/lib/go /usr/share/go /usr/share/man/man1/go.1.gz

結局、インストールを確認したディレクトリだけが残ります。これは、環境変数が正しいディレクトリでもあります。

最後に、エラーなしでgo buildを実行します!

go環境変数を変更するメソッドを使用

###### / etc / profileファイルに変数を追加します[すべてのユーザーに有効(永続的)]

##### vimは環境変数ファイルを変更します:sudo vim / etc / profile

######開いたファイルの最後にexportPATH = $ PATH:/ usr / local / go / binを追加します

######最後に、有効にする必要があります:source / etc / profile

分析、最初はGOROOTとGOPATHの問題です。goのインストールディレクトリについて明確にする必要があります。つまり、GOROOTは間違いを犯さないでください。インストールディレクトリがわからない場合は、次を使用できます。