困扰我多时的 go 编译报错:循环导入,代码肯定是没问题的,网上查说重新安装go 我觉得也不是太好的办法

import cycle not allowed
package day01/helloimports fmtimports errorsimports runtimeimports internal/bytealgimports internal/cpuimports runtime  

环境:

ubuntu16.04

go1.11.4

编辑器:vs code

分析:

首先是GOROOT 和GOPATH问题,一定要明确自己go 的安装目录,即GOROOT 不要写错,如果不知道自己的安装目录,可以用下面的命令查看go 安装地址

$ 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 不要写错,如果不知道自己的安装目录,可以用

golang go build 报错 import cycle not allowed相关推荐

  1. packer build 报错 无任何输出 一直报“skipping line: 1 skipping line: 2 skipping line: 3.....”

    最近使用packer build 报错 无任何输出 一直报"skipping line: 1 skipping line: 2 skipping line: 3....." , 解 ...

  2. 一种解决Android studio 3.0 Build报错的方法

    一种解决Android studio 3.0 Build报错的方法 参考文章: (1)一种解决Android studio 3.0 Build报错的方法 (2)https://www.cnblogs. ...

  3. 使用golang发送邮件,报错“x509: certificate signed by unknown authority”

    问题描述 使用golang发送邮件,报错"x509: certificate signed by unknown authority",这是由于客户端默认要对服务端传过来的数字证书 ...

  4. npm run build报错Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of

    在react项目执行 npm run build 报错 Ineffective mark-compacts near heap limit Allocation failed - JavaScript ...

  5. vue打包npm run build报错

    vue打包npm run build报错: 近期领导要求用vue做一个项目,最近在研究和学习vue,在项目打包时一直报错,这个问题困扰了好久,尝试了很多网上办法,但都没有用 电脑每次开机首次执行npm ...

  6. SAP IDoc 报错- Function module not allowed SPEIDOC_INPUT_DESADV1 –

    SAP IDoc 报错- Function module not allowed SPEIDOC_INPUT_DESADV1 – 在公司间STO流程中,很多项目里实现了在外向交货单PGI之后,自动触发 ...

  7. mysql安装报错 1130_关于Linux编译安装会无法远程登录,报错:1130-host ... is not allowed to connect to this MySql server...

    报错:1130-host ... is not allowed to connect to this MySql server, 这是默认安装时为了安全不允许远程登录数据库.只用改下就可以,但我第一次 ...

  8. MySQL : 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost...

    MySQL : 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost 摘自: ...

  9. 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost...

    报错:1130-host ... is not allowed to connect to this MySql server 解决方法: 1. 改表法. 可能是你的帐号不允许从远程登陆,只能在loc ...

最新文章

  1. 【FPGA】ROM/EPROM的设计(使用加载文件的方式初始化)
  2. python进行数据分析 kindle_利用Python进行数据分析
  3. 常用WebService一览表
  4. 手写简版spring --2--实现Bean的定义、注册、获取
  5. 高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间...
  6. Springmvc中提交from之后不跳转不进控制器
  7. flink常见算子的一些操作
  8. chrome浏览器开发者工具F12中某网站的sources下的源码如何批量保存?
  9. 【Elasticsearch】Data too large, data for which is larger than the limit of
  10. eclipse启动报错 Java was started but returned exit code=13 解决方法
  11. 【转】ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法
  12. 单片机课程设计——交通灯
  13. 64k超高清3d程序 Warez出品的精品动画 近25万倍的压缩的精品
  14. ccf csp 201612-2 工资计算
  15. 005_Python字符串练习_[吉比特校招编程题]字母数字混合排序
  16. 基于分类分级的医疗临床数据合规共享与安全防护建设实践
  17. Android百度地图自定义添加Marker点
  18. Windows Mobile 6.1模拟器发布,欢迎下载!
  19. PAT 乙级 1046(划拳)
  20. web应用开发的主流技术

热门文章

  1. Go 语言编程 — 函数
  2. CAS KVM 虚拟机的保护与恢复
  3. BC28、BC95通过LWM2M连接电信AEP(ctwing)
  4. Es6 generator浅入浅出
  5. ocr识别技术-车牌识别一体机的核心关键
  6. [LeetCode]--38. Count and Say
  7. (实用)Ubuntu Linux静态IP网络配置
  8. js只能输入数字,小数点(整理)
  9. 业务系统设计之一:系统菜单设计
  10. 基于SSM的餐饮工业化管理系统-计算机毕业设计