linux系統:go build報錯import cycle not allowed
阿新 • • 發佈:2019-02-20
重新安裝 ont osi 項目 div play 其中 ubuntu16 size ,一定要明確自己go 的安裝目錄,即GOROOT 不要寫錯,如果不知道自己的安裝目錄,可以用下面的命令查看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 code
分析:
首先是GOROOT 和GOPATH問題
$ whereis go #輸出 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 #我可能是在不同的地方安裝了多個版本的 go
GOPATH 是我們go代碼的工作路徑,正常配置自己的項目文件夾路徑就可以,我的是在/home/zzy/goProject
go 環境查看
$ go env #輸出 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" #其中關鍵看GOPATH,GOROOT
我發現我的配置都沒有錯啊!我的go代碼工作目錄也是/home/zzy/goProjec 這個路徑,說明GOPATH 也沒有錯,那到底是哪裏錯了!
最後我發現在執行whereis go 的時候,我有很多版本的go 而我在環境變量裏只是配置了一個版本的GOROOT ,是go1.11.4
但是我在用查看go版本的時候,居然顯示是go1.6
go version
所以我估摸是我的go安裝亂了,版本太多,導致在go build 的時候找不到正確的go 路徑,然後我就開始一個一個刪除
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 ###### 在打開的文件末尾添加 export PATH=$PATH:/usr/local/go/bin即可 ###### 最後一定要啟用: source /etc/profile
分析,首先是GOROOT 和GOPATH問題,一定要明確自己go 的安裝目錄,即GOROOT 不要寫錯,如果不知道自己的安裝目錄,可以用
linux系統:go build報錯import cycle not allowed