环境变量GOBIN导致GoClipse运行出现异常

 

Windows 10家庭中文版,go version go1.11 windows/amd64,

Eclipse IDE for C/C++ Developers Photon Release (4.8.0), GoClipse 0.16.1(v201607061938),

 

背景:在前面开发Go项目时,自己已经把环境变量GOBIN删除了,并且程序按照预期运行——在Eclipse的Console中输出测试结果。

 

之前使用Eclipse+GoClipse开发Go项目时,遇到了下面的异常:
Executable file (...) doesn't exist.

 

此时,还存在一个项目go961,是之前建立的,其中的程序按照预期运行。

 

问题:为何这个新建的项目就无法运行呢?

之前测试项目go961时,删除了环境变量GOBIN就正常了啊!

 

环境变量部分的异常:

检查Windows 10环境变量时,没有发现环境变量GOBIN,可是,在使用go env命令查看时却发现GOBIN是有值的,并非为空。

 

正是因为GOBIN的值不为空,于是,异常产生了——编译生成的可执行文件没有在项目的bin目录下,而是存在于GOROOT的bin目录下,但Eclipse找的是项目的bin下的可执行文件,但没找到。

 

接着,在Eclipse中各种配置、比较正常的项目go961和异常的项目go961——没有发现配置差别、网络查找资料——比如下面这篇:

https://github.com/GoClipse/goclipse/issues/197

资料中也是说需要把GOBIN设置为空:

 

可是,没有设置GOBIN,可命令go env中的GOBIN却不为空!是哪里影响到了呢?

 

在耗时一两个小时却无果后,灵光一闪新建环境变量GOBIN,再删除它

因为GOBIN需要绝对路径,所以,上面的设置是不对的,但俺们进行此操作的目的是——新建后删除它!

 

接下来,删除刚刚建立的GOBIN,再 重启Eclipse 测试go962是否可以运行——成功运行!

-删除后,命令go env显示GOBIN为空:

 

测试:重启计算机,执行go env命令,仍然显示GOBIN为空!

 

-测试go962的结果

 

-在项目go962下新建app进行测试(参考昨天读的关于go项目目录结构的文章)——成功

 

-新建项目go910,执行项目中的程序,成功!

 

总结:

解决问题的原则就是 保持 GOBIN 为空!

 

发生问题的原因推测:

1.项目go962是之前还项目go961一起建立的,在建立项目go962时,可能自己还没有删除环境变量GOBIN;

2.在后面的学习Go语言开发时,自己还尝试了使用LiteIDE,可能是在使用其过程中,GOBIN被它更改到 某个地方 了,虽然Windows的环境变量对话框中没有,但go env执行后怎么会出现呢?

  刚刚测试使用LiteIDE运行了一个程序,成功,运行完毕后,go env中的GOBIN还是为空!

 

参考链接:

1.https://github.com/GoClipse/goclipse/issues/197

2.GOROOT、GOPATH、GOBIN、project目录(https://blog.csdn.net/xiongwenwu/article/details/52534949)

 

补充说明,

这次删除GOBIN后,执行Eclipse、LiteIDE中的Go项目时,GOROOT下的bin中没有出现项目的可执行文件了!

 

180910-1445更新:

使用visual studio code编写了一个go程序 runoob.go,位于app2目录下:

package main

var a = "菜鸟教程"
var b string = "runoob.com"
var c bool

func main() {
	println(a, b, c)
}

通过命令行执行遇到下面的错误

D:\ws\golang\prj1\src>go install ./app2
go install: no install location for directory D:\ws\golang\prj1\src\app2 outside GOPATH
        For more details see: 'go help gopath'


D:\ws\golang\prj1\src>go install ./app2/runoob.go
go install: no install location for .go files listed on command line (GOBIN not set)

D:\ws\golang\prj1\src\app2>go install runoob.go
go install: no install location for .go files listed on command line (GOBIN not set)

设置GOBIN后,可以使用go install运行程序:

D:\ws\golang\prj1\src\app2>go install runoob.go

D:\ws\golang\prj1\src\app2>runoob.exe
菜鸟教程 runoob.com false

D:\ws\golang\prj1\src\app2>dir
 驱动器 D 中的卷是 新加卷
 卷的序列号是 BAD3-E0B3

 D:\ws\golang\prj1\src\app2 的目录

2018/09/10  14:44    <DIR>          .
2018/09/10  14:44    <DIR>          ..
2018/09/10  14:44         1,021,440 runoob.exe
2018/09/10  14:40               118 runoob.go
               2 个文件      1,021,558 字节
               2 个目录 78,705,295,360 可用字节

 

转载于:https://www.cnblogs.com/luo630/p/9618712.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值