linux系统:go build报错import cycle not allowed
go build
困扰我多时的 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 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=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED=""
#其中关键看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的更多相关文章
- go 报错 import cycle not allowed
运行时报错,import cycle not allowed : 查了goole大概知道了原因,还是导包类的问题,我检察了一下我的代码库,发现我昨天划分几个工具文件,里面的两个文件相互引用,就导致报i ...
- Linux下Electron loadURL报错 ERR_FAILED(-2) Not allowed to load local resource
Linux下Electron loadURL报错 ERR_FAILED(-2) Not allowed to load local resource 背景 使用electron-vue的时候,窗体创建 ...
- linux系统unzip文件报错的解决方案
data.zip文件有4G多,解压的时候出问题了. Archive: data.zip End-of-central-directorysignature not found. Either th ...
- import cycle not allowed in test
写个 sdk 的测试时报错 import cycle not allowed in test 后发现因为测试文件内多写了导入同包路径. 同 package 下的 xxx_test.go 内不需要额外 ...
- linux 下 tomcat 运行报错 Broken pipe
linux 下 tomcat 运行报错 Broken pipe 感谢:http://hi.baidu.com/liupenglover/blog/item/4048c23ff19f1cd67d1e71 ...
- linux下安装php报错configure: error: Cannot find MySQL header files under /usr/include/mysql.
linux下安装php报错configure: error: Cannot find MySQL header files under /usr/include/mysql. 2013-03-04 1 ...
- Linux虚拟机--进入MySQL报错的解决办法
在Linux安装MySQL有时候会出现 [mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/ ...
- go build报错cannot find package
go env 关键数据是这样的 GOPATH="/home/zzy/goProject" GOROOT="/usr/local/go" 项目目录是这样的 goP ...
- Linux下Oracle11G RAC报错:在安装oracle软件时报file not found一例
Linux下Oracle11G RAC报错:在安装oracle软件时报file notfound一例 1.现象 之前安装一切都比較顺利,安装oracle软件时,进度到30%时报错:file not f ...
随机推荐
- 使用autoconf和automake生成Makefile
使用环境: 我的是Ubuntu 16.04,需要用到autoconf和automake,没有的话自行安装. 以helloworld为例: 1.首先新建一个文件夹然后进去没的说:然后自然得先写出那个著名 ...
- 自编shell脚本合集(完善中)
1.数据库备份 #!/bin/bash user="root" psword="root" bakdir="/data/mysqlbak" ...
- android Manifest.xml 文件详解
- Codeforces 353E 贪心
题意:给你一张有向图,第i条边连接i号点和(i + 1) % n号点,问最多可以选择多少个点,使得这些点互相不可达. 思路:容易发现,如果某个边的集合点的数目大于等于2,那么就可以选出一个点,当然也可 ...
- 简单递归____Fibonacci数列
#include <stdio.h> int fun(int x) { ||x==) ; else return fun(x-1)+fun(x-2); } int main() { int ...
- eclipse远程调试Tomcat方法(转)
转自:http://blog.csdn.net/afgasdg/article/details/9236877 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OP ...
- CNN基础二:使用预训练网络提取图像特征
上一节中,我们采用了一个自定义的网络结构,从头开始训练猫狗大战分类器,最终在使用图像增强的方式下得到了82%的验证准确率.但是,想要将深度学习应用于小型图像数据集,通常不会贸然采用复杂网络并且从头开始 ...
- java web项目获取项目路径
注意:有时获取到的项目路径后再+“自定义路径后” 路径不可用,这时要看下项目里自定义路径是不是空文件夹,如果是空文件夹则调试和运行时文件夹不会编译到部署文件里. 1.方法一 调试时只能获取eclips ...
- Vue项目中导入excel文件读取成js数组
1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...
- python用户名密码限定次数登录
""" 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户"""" test.txt ...